В переменной 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;
}
JavaScript
Найдите ошибку, пожалуйста. Редактор ругается на все строки, ничего не выдаёт.
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
Т. е. если писать через 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
ВОКРУГ условия в 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 - полный бред.
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 - полный бред.
Вадим Сумаков
Большое спасибо. Круглые скобки необходимы всегда в цикле или когда мы ставим больше одного условия?
Увы, как учат, так и пишу. Если преподаватель говорит, что всё нормально, то и я продолжаю делать дальше так... Интересно, конечно... К тому же, пока мы на дистанционном обучении, мне не с кем разобрать материал, который мне не был понятен.
Увы, как учат, так и пишу. Если преподаватель говорит, что всё нормально, то и я продолжаю делать дальше так... Интересно, конечно... К тому же, пока мы на дистанционном обучении, мне не с кем разобрать материал, который мне не был понятен.
Похожие вопросы
- Не могу найти ошибку в коде.
- Помогите найти ошибку?
- Почему консоль выдает ошибку в callback ф-ии?
- JavaScript. Помогите, пожалуйста понять, где здесь ошибка. Не ругайтесь, я нуб.
- Не работает js.Ищу элемент а выдает ошибку
- Можно ли проверить строку на наличие элементов?
- Как менять строки и столбцы в двумерном массиве JS
- Как запретить переход по адресной строке?
- Проверьте 2 кода ((( пожалуйста и ткните носом на ошибку. В общем 1 код работает частично, а второй вообще не работает. JS
- Если в массиве меньше 2-х чисел, вернуть строку, сообщающую, что чисел недостаточно.
Правда, второй вариант мне не не особо понятен с " Math.ceil", т. к. такого мы не проходили.