@vrazrabotchik

Почему оператор else не срабатывает?

function fun5(){
 
 var q = document.getElementById('aaa').value;

if(q==1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9){
  alert('Все числа на месте');
}else{
  alert('Всё не гладко');
}

}

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<meta charset="utf8">
</head>
<body>
   <input type="number" id="aaa" name="">
   <br>
   <button onclick="fun5()">Кнопка</button>
  <script src='lesson.js'></script>
</body>
</html>

Должно проверяться введённое число пользователем, срабатывает только первый пункт))
  • Вопрос задан
  • 225 просмотров
Решения вопроса 2
BuriK666
@BuriK666
Компьютерный псих
Так нельзя.

if(q==1 || q==2 || q==3 || q==4 || q==5 || q==6 || q==7 || q==8 || q==9){
или
if([1,2,3,4,5,6,7,8,9].indexOf(q) != -1)
Ответ написан
@AntowaKartowa
Подозреваю, что хотелось, чтоб q сравнивалось поочереди со всеми числами от 1 до 9 пока не найдет совпадения
Но такая конструкция так не работает if (q==1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9)
Сначала проверится равно ли q единице и если нет тогда дальше будет получено просто число два что эквивалентно
true. Потому else никогда не сработает.

Тут или
if (q == 1 || q == 2 || ...
или
if (q > 0 && q < 10)
или
if ( !!~[1,2,3,4,5,6,7,8,9].indexOf(q) )
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы