JS_условия


#1

Добрый вечер.

Почему выполняется лишь третье условие?

Код:
if (!isRaining && temperature >= 10 && temperature < 15) {
minutes=30;
}else {
minutes = 0;
}
if (!isRaining && temperature >= 15 && temperature < 25) {
minutes=40;
} else {
minutes = 0;
}

if (!isRaining && temperature >= 25 && temperature <= 35) {
minutes=20;
}else {
minutes = 0;
}


#2

потому что условия независимые друг от друга. как вариант - уберите else везде


#3

Убрала, и все прошло.

Но почему else не нужен?


#4

И зачем определять первые две переменные?


#5

else не нужен, потому что это работает так:
допустим температура 15, дождя нет.
первое условие возвращает в предикате ложь, значит else первого условия отдает minutes = 0 (первая перезапись переменной)
второе условие возвращает в предикате истину, значит minutes = 40 (вторая перезапись переменной)
третье условие возвращает в предикате ложь, значит else третьего условия отдает minutes = 0
(третья перезапись переменной)
проверки независимы, а значит которая последняя перезаписывает, та и идет в итог.

а должно работать так, чтобы после получения первой истины в итог шло значение сработавшего условия.
по факту хорошая программа это та, которая использует минимум перезаписей значения (тут вообще должна быть 1 или 0 перезаписей, вместо 3 как у вас).

про определение переменных не понял о чем вы, уточните вопрос.