 
			
				06.12.2013, 04:12
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.11.2013 
					
					
					
						Сообщений: 42
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Вот за такое и ругают   
Если можно — не значит, что нужно. А тут человек явно написал, что только учится. Не учите плохому сразу — сам научится.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.12.2013, 08:36
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от 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,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от 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,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		danik.js, цикл с постусловием тут больше подходит...   
Я учу JavaScript 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.12.2013, 15:42
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.09.2010 
					
					
					
						Сообщений: 8,804
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 ksa, у тебя дублируется проверка условия. Это не хорошо. 
		
	
		
		
		
		
		
			
				__________________ 
				В личку только с интересными предложениями   
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.12.2013, 15:48
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от danik.js
			
		
	 | 
 
	| 
		у тебя дублируется проверка условия
	 | 
 
	
 
 А ты функцию два раза вызываешь...   
Вобщем паритетно...    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.12.2013, 16:31
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 13.03.2013 
					
					
					
						Сообщений: 1,572
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		не соглашусь 
i = promptNumber(); дублируешь в коде два раза увы повторяешься
 
for (var getNumber = function () {
          return prompt("Введите любое число больше 5")
        }, i, a = 0; i = getNumber(), a = isNaN(i), 5 >= i || a;)
      //закончили объявление переменных и условие цикла, ниже строчка одна - тело цикла как видите можно без {}
      alert("Вы ввели " + (a ? 'не число' : i) + ". Пожалуйста введите число больше 5");
      alert("Спасибо, вы ввели " + i);
не смотрите на синтаксис всем не угодишь (у каждого своя нотация и тараканы),  
вы учитесь самое главное, чтобы понимали, что написано 
переписал код с предложенный на странице 4. Ввел переменную a, чтобы не вызывать дважды isNaN(i), можно и без нее, тогда isNaN(i)  http://javascript.ru/isNaN в некоторых вариациях будет дважды вызвано как  на странице 4  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Vlasenko Fedor, 07.12.2013 в 00:25.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |