else не нужен, потому что это работает так:
допустим температура 15, дождя нет.
первое условие возвращает в предикате ложь, значит else первого условия отдает minutes = 0 (первая перезапись переменной)
второе условие возвращает в предикате истину, значит minutes = 40 (вторая перезапись переменной)
третье условие возвращает в предикате ложь, значит else третьего условия отдает minutes = 0
(третья перезапись переменной)
проверки независимы, а значит которая последняя перезаписывает, та и идет в итог.
а должно работать так, чтобы после получения первой истины в итог шло значение сработавшего условия.
по факту хорошая программа это та, которая использует минимум перезаписей значения (тут вообще должна быть 1 или 0 перезаписей, вместо 3 как у вас).
про определение переменных не понял о чем вы, уточните вопрос.
“по факту хорошая программа это та, которая использует минимум перезаписей значения (тут вообще должна быть 1 или 0 перезаписей, вместо 3 как у вас).”
В материалах к этому тренажеру указан такой код:
if (условие1) {
if (условие2) {
действия;
}
}
с помощью этой команды мы используем несколько условий и какое-то действие. А как в одной команде показать несколько условий с вытекающими несколькими действиями?
Можете объяснить/показать на примере этого кода как сделать 0 перезаписей?
Код:
if (!isRaining && temperature >= 10 && temperature < 15) {
minutes=30;
}
if (!isRaining && temperature >= 15 && temperature < 25) {
minutes=40;
}
if (!isRaining && temperature >= 25 && temperature <= 35) {
minutes=20;
}
п.с. Такой код считается правильным решением в испытании, однако если вручную менять переменные, то срабатывают только значения последнего варианта, что вполне логично.