Javascirpt, проблема с условным оператором

80
29 июля 2021, 13:00

Почему код работает не правильно?

Если указанное время больше 6 или меньше 12, то выводится "Доброе утро", если указанное время больше 12 или меньше 18, то выводится "Добрый день", в остальные случаи "добрый вечер".

let time = prompt( 'какое у вас время?' ); 
 
if (time > 6  || time < 12 ) { 
   alert( 'Доброе утро' ); 
} else if (time >  12 || time < 18 ) { 
   alert( 'Добрый день' ); 
} else { 
   alert( 'Добрый вечер' ); 
}

Answer 1

Для указания каких-то промежутков нужно использовать логическое И, а не логическое ИЛИ. Если вы пишете "больше 6 или меньше 12", то истиной будут любые числа.

Если ввести 19, то это число проходит по условию time > 6, если же 4, например, то оно проходит по условию time < 12. Также нужно не забывать про >=, а то пропускается число.

В итоге имеется:

let time = prompt( 'какое у вас время?' ); 
 
if (time > 6  && time < 12 ) { 
   alert( 'Доброе утро' ); 
} else if (time >=  12 && time < 18 ) { 
   alert( 'Добрый день' ); 
} else { 
   alert( 'Добрый вечер' ); 
}

READ ALSO
смена картинки при наведении на див

смена картинки при наведении на див

доброе время суток у меня есть див с классом test и при наведении на див надо сменить картинку я попробовал написать на jquery но не могу понять...

135
Неизменяемый масштаб сайта

Неизменяемый масштаб сайта

Как в css задать так, чтобы при уменьшении страница html тоже уменьшалась? То есть при заходе с мобильного устройства страница показывалась полностью

127
Преобразование типов в с++. Из int в string

Преобразование типов в с++. Из int в string

Каким способами можно выполнить преобразование из инта в строку?

78
Ссылка на вектор теряется по пути

Ссылка на вектор теряется по пути

У меня естьh файл в котором описан всего один класс Worker:

176