Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 05.12.2013, 21:36
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 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);
Ответить с цитированием
  #32 (permalink)  
Старый 06.12.2013, 03:01
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 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.
Ответить с цитированием
  #33 (permalink)  
Старый 06.12.2013, 04:12
Аспирант
Отправить личное сообщение для Antonius Посмотреть профиль Найти все сообщения от Antonius
 
Регистрация: 30.11.2013
Сообщений: 42

Вот за такое и ругают

Если можно — не значит, что нужно. А тут человек явно написал, что только учится. Не учите плохому сразу — сам научится.
Ответить с цитированием
  #34 (permalink)  
Старый 06.12.2013, 08:36
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,227

Сообщение от Poznakomlus
Это должно расширять кругозор
Т.е. учиться на чужих ошибках...

В нашем случае на не совсем "правильном" оформлении кода.
Ответить с цитированием
  #35 (permalink)  
Старый 06.12.2013, 12:58
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от ksa Посмотреть сообщение
Т.е. учиться на чужих ошибках...
В нашем случае на не совсем "правильном" оформлении кода.
Это вы о чем простите?
Стандарты? Удобство читаемости? Стиль написания?
Какие ошибки.
Ошибки в ваших примерах логические
Возьмите код
for(var i = 0; i < 5; i += 1){alert(i)}

Закиньте его в компилятор от Google http://closure-compiler.appspot.com/home
Ответить с цитированием
  #36 (permalink)  
Старый 06.12.2013, 13:01
Аватар для Antarius
Интересующийся
Отправить личное сообщение для Antarius Посмотреть профиль Найти все сообщения от Antarius
 
Регистрация: 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 Посмотреть сообщение
Вот за такое и ругают

Если можно — не значит, что нужно. А тут человек явно написал, что только учится. Не учите плохому сразу — сам научится.
Ответить с цитированием
  #37 (permalink)  
Старый 06.12.2013, 13:10
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 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 мне больше нравится
Да ты эстет!
Ответить с цитированием
  #38 (permalink)  
Старый 06.12.2013, 14:46
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 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);



Помоему это самый простой, легко читаемый, очевидный и сам собой напрашивающийся вариант.

В первом варианте я просто укоротил запись, и впринципе код так же укладывается в алгоритм.

Найду странным если другие сомной не согласятся
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #39 (permalink)  
Старый 06.12.2013, 14:51
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,227

danik.js, цикл с постусловием тут больше подходит...
Я учу JavaScript
Ответить с цитированием
  #40 (permalink)  
Старый 06.12.2013, 15:42
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

ksa, у тебя дублируется проверка условия. Это не хорошо.
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книга: JavaScript. Сильные стороны Magneto Учебные материалы 16 21.04.2013 15:28
Интерпретатор Java на JS kobezzza Оффтопик 24 11.10.2012 18:32
Первый Moscow JavaScript Meetup korenyushkin Общие вопросы Javascript 0 26.07.2011 15:23
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34