05.12.2013, 21:36
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,227
|
|
Сообщение от danik.js
|
насколько я знаю за while(true) в некоторых местах могут наругать
|
Тогда модифицируем немного...
do {
var i = Number(prompt("Введите любое число больше 5"));
if (i <= 5){
alert("Вы ввели "+i+" , Пожалуйста введите число больше 5");
} else {
alert("Спасибо, вы ввели "+i);
};
} while (i<=5);
alert("Число "+i);
//document.write("Число "+i);
|
|
06.12.2013, 03:01
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
Вариант учитывает ввод ошибочных данных к примеру букв
for (var getNumber = function () {
return prompt("Введите любое число больше 5")
}, i; i = getNumber(), 5 >= i || isNaN(i);)
//закончили объявление переменных и условие цикла, ниже строчка одна - тело цикла как видите можно без {}
alert("Вы ввели " + (isNaN(i) ? 'не число': i) + ". Пожалуйста введите число больше 5");
alert("Спасибо, вы ввели " + i);
Сообщение от danik.js
|
правда за присвоение в условии тоже наругают
|
где ругают?
стандартный цикл это объявление переменных var a, b, c...;
выполнение действий можно в цепочку, последнее условие a++, b -=1, !с;
выполнение действий после выполнения прохода тела цикла --g, d=0, z--
for (var i = 3, b = 0; alert('i - ' + i--), i; alert('b - ' + b++))console.log(i, b);
Последний раз редактировалось Vlasenko Fedor, 06.12.2013 в 03:49.
|
|
06.12.2013, 04:12
|
Аспирант
|
|
Регистрация: 30.11.2013
Сообщений: 42
|
|
Вот за такое и ругают
Если можно — не значит, что нужно. А тут человек явно написал, что только учится. Не учите плохому сразу — сам научится.
|
|
06.12.2013, 08:36
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,227
|
|
Сообщение от Poznakomlus
|
Это должно расширять кругозор
|
Т.е. учиться на чужих ошибках...
В нашем случае на не совсем "правильном" оформлении кода.
|
|
06.12.2013, 12:58
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
Сообщение от ksa
|
Т.е. учиться на чужих ошибках...
В нашем случае на не совсем "правильном" оформлении кода.
|
Это вы о чем простите?
Стандарты? Удобство читаемости? Стиль написания?
Какие ошибки.
Ошибки в ваших примерах логические
Возьмите код
for(var i = 0; i < 5; i += 1){alert(i)}
Закиньте его в компилятор от Google http://closure-compiler.appspot.com/home
|
|
06.12.2013, 13:01
|
|
Интересующийся
|
|
Регистрация: 02.12.2013
Сообщений: 19
|
|
И тут я познакомился с функциями переварив код, вопросов не появилось ))
Сообщение от danik.js
|
Другой вариант (насколько я знаю за while(true) в некоторых местах могут наругать, правда за присвоение в условии тоже наругают )
var promptNumber = function() {
return Number(prompt("Введите любое число больше 5"));
}
var i;
while ( (i = promptNumber()) <= 5) {
alert("Вы ввели "+i+" , Пожалуйста введите число больше 5");
}
alert("Спасибо, вы ввели "+i);
//document.write("Число "+i);
|
ksa а как сделать тоже самое с циклом for ? Ведь мой вариант выводит не всё так четко как в твоем случае.
Просто for мне больше нравится
Сообщение от ksa
|
Тогда модифицируем немного...
do {
var i = Number(prompt("Введите любое число больше 5"));
if (i <= 5){
alert("Вы ввели "+i+" , Пожалуйста введите число больше 5");
} else {
alert("Спасибо, вы ввели "+i);
};
} while (i<=5);
alert("Число "+i);
//document.write("Число "+i);
|
Спасибо!! Интересно)
Сообщение от Poznakomlus
|
Вариант учитывает ввод ошибочных данных к примеру букв
for (var getNumber = function () {
return prompt("Введите любое число больше 5")
}, i; i = getNumber(), 5 >= i || isNaN(i);)
//закончили объявление переменных и условие цикла, ниже строчка одна - тело цикла как видите можно без {}
alert("Вы ввели " + (isNaN(i) ? 'не число': i) + ". Пожалуйста введите число больше 5");
alert("Спасибо, вы ввели " + i);
где ругают?
стандартный цикл это объявление переменных var a, b, c...;
выполнение действий можно в цепочку, последнее условие a++, b -=1, !с;
выполнение действий после выполнения прохода тела цикла --g, d=0, z--
for (var i = 3, b = 0; alert('i - ' + i--), i; alert('b - ' + b++))console.log(i, b);
|
Плохого не пожелают
Сообщение от Antonius
|
Вот за такое и ругают
Если можно — не значит, что нужно. А тут человек явно написал, что только учится. Не учите плохому сразу — сам научится.
|
|
|
06.12.2013, 13:10
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,227
|
|
Сообщение от Antarius
|
а как сделать тоже самое с циклом for ?
|
Как вариант...
for (;true;) {
var i = Number(prompt("Введите любое число больше 5"));
if (i <= 5){
alert("Вы ввели "+i+" , Пожалуйста введите число больше 5");
} else {
alert("Спасибо, вы ввели "+i);
break;
};
};
alert("Число "+i);
//document.write("Число "+i);
Но это уже полный изврат...
Сообщение от Antarius
|
Просто for мне больше нравится
|
Да ты эстет!
|
|
06.12.2013, 14:46
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Вот как я представляю алгоритм реализации:
введенное_число = спросить_число()
пока (введенное_число <= 5) {
рапортуем("не канает!")
введенное_число = спросить_число()
}
соответственно мой немного измененный вариант:
var promptNumber = function() {
return Number(prompt("Введите любое число больше 5"));
}
var i = promptNumber();
while (i <= 5) {
alert("Вы ввели "+i+" , Пожалуйста введите число больше 5");
i = promptNumber();
}
alert("Спасибо, вы ввели "+i);
//document.write("Число "+i);
Помоему это самый простой, легко читаемый, очевидный и сам собой напрашивающийся вариант.
В первом варианте я просто укоротил запись, и впринципе код так же укладывается в алгоритм.
Найду странным если другие сомной не согласятся
__________________
В личку только с интересными предложениями
|
|
06.12.2013, 14:51
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,227
|
|
danik.js, цикл с постусловием тут больше подходит...
Я учу JavaScript
|
|
06.12.2013, 15:42
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
ksa, у тебя дублируется проверка условия. Это не хорошо.
__________________
В личку только с интересными предложениями
|
|
|
|