JavaScript

Найдите ошибку, пожалуйста. Редактор ругается на все строки, ничего не выдаёт.

В переменной min лежит число от 0 до 59. Определите в какую четверть
часа попадает это число (в первую, вторую, третью или четвертую).

1. вариант
var min = 10;
if (min>=0) && (min<=14) { alert('1'); }
if (min>=15) && (min<= 30) { alert('2'); }
if (min>=31) && (min<= 45) { alert('3'); }
if (min>=46) && (min<= 59) { alert('4');}

2. вариант
var min = 10;
switch (min) {
case (min>=0) && (min<=14):alert('1');
case (min>=15) && (min<= 30):alert('2');
case (min>=31) && (min<= 45):alert('3');
case (min>=46) && (min<= 59):alert('4');
break;
}
switch проверяет именно значение переменной min...

Т. е. если писать через switch, это будет примерно так:

switch (min) {
  case 0: alert(1); break;
  case 1: alert(1); break;
  case 2: alert(1); break;
  case 3: alert(1); break;
  ...
  case 10: alert(1); break;
}

По-хорошему, это реашется даже не через if, а так:

let min = 10;

alert( Math.ceil( min / 15 ) );
_____

А если через if, то хотя бы так:

let min = 10;
let quarter;

if (0 <= min && min < 15) {
  quarter = 1;
} else if (15 <= min && min < 30) {
  quarter = 2;
} else if (30 <= min && min < 45) {
  quarter = 3;
} else if (45 <= min && min < 60) {
  quarter = 4;
}

alert(quarter);

Чтобы делать меньше проверок. Как только одно из условий выполнится - следующие не будут проверяться лишний раз.

P.s. ( 0 <= min && min < 15 ) — а такая запись просто ближе к обычному математическому неравенству... 0 < min < 15
Niyazi Qasimov
Niyazi Qasimov
62 360
Лучший ответ
Вадим Сумаков Ничего себе, спасибо.
Правда, второй вариант мне не не особо понятен с " Math.ceil", т. к. такого мы не проходили.
ВОКРУГ условия в if НЕОБХОДИМЫ круглые скобки:
if ((min>=0) && (min<=14)) { alert('1'); }
if ((min>=15) && (min<= 30)) { alert('2'); }
if ((min>=31) && (min<= 45)) { alert('3'); }
if ((min>=46) && (min<= 59)) { alert('4');}

А то, что ты понаписал в switch - полный бред.
Андрей Шалин
Андрей Шалин
68 000
Вадим Сумаков Большое спасибо. Круглые скобки необходимы всегда в цикле или когда мы ставим больше одного условия?

Увы, как учат, так и пишу. Если преподаватель говорит, что всё нормально, то и я продолжаю делать дальше так... Интересно, конечно... К тому же, пока мы на дистанционном обучении, мне не с кем разобрать материал, который мне не был понятен.