нужно использовать конструкцию else if, иначе в твоем случае, если вдруг условия пересекаются, то выполнится несколько условий, а в случае else if выполняется только одно
длинные, сложночитаемые условия, нужно выносить в переменные с понятным названием, например const isLessThan15 = !isRaining && temperature >= 10 && temperature < 15; const isLessThan25 = !isRaining && temperature >= 15 && temperature < 25;
всегда используй const, а только если переменная перезаписывается используй let (браузер всегда отобразит ошибку если ты вдруг перезапишешь const)
если ты все же используешь let присваивать значение 0, как здесь let minutes = 0; необязательно, можно написать так let minutes;, ты ведь в последнем else все равно
присваиваешь 0
} else {
minutes = 0;
};
либо ты мог присвоить в начале let minutes = 0;, а последнее условие не писать
const temperature = 20;
const isRaining = true;
let minutes = 0;
const isLessThan15 = !isRaining && temperature >= 10 && temperature < 15;
const isLessThan25 = !isRaining && temperature >= 15 && temperature < 25;
const isLessThan35 = !isRaining && temperature >= 25 && temperature < 35;
if (isLessThan15) {
minutes = 30;
} else if (isLessThan25) {
minutes = 20;
} else if (isLessThan35) {
minutes = 10;
}
let temperature = 45;
let isRaining = false;
let minutes = isRaining ? 0 :
temperature >= 10 && temperature < 15 ? 30 :
temperature >= 15 && temperature < 25 ? 40 :
temperature >= 25 && temperature <= 35 ? 20 :
temperature > 35 && temperature < 40 && 10 || 0;
Почему этот код не проходит тесты в случае с дождём.
let temperature = 20;
let isRaining = true;
let minutes = 0;
if (temperature < 10 || temperature > 35 || isRaining){
minutes = 0;
};
if (temperature >= 10 && temperature < 15){
minutes = 30;
};
if (temperature >= 15 && temperature < 25){
minutes = 40;
};
if (temperature >= 25 && temperature <= 35){
minutes = 20;
};
console.log(minutes);
А этот код проходит все тесты. Я просто перенёс первый блок в конец. Что теперь позволяет такому же коду проходить тесты?
let temperature = 20;
let isRaining = true;
let minutes = 0;
if (temperature >= 10 && temperature < 15){
minutes = 30;
};
if (temperature >= 15 && temperature < 25){
minutes = 40;
};
if (temperature >= 25 && temperature <= 35){
minutes = 20;
};
if (temperature < 10 || temperature > 35 || isRaining){
minutes = 0;
};
console.log(minutes);
Оцените мой код:
if (!isRaining && temperature >= 10 && temperature < 15) {
minutes = 30;
} if (!isRaining && temperature >= 15 && temperature < 25) {
minutes = 40;
} if (!isRaining && temperature >= 25 && temperature <= 35) {
minutes = 20;
}
Решил без добавления ветки else.
Но если попробовать с ней
else {
minutes = 0;
}
То тесты пройдут не все.
А вообще решил ее не добавлять так-как изначально minutes = 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;
}```