У вас все условия работают независимо друг от друга. То есть условия 2-4 не зависят от первого (идет дождь или нет). Если идет дождь, прогулки не будет. Во всех остальных случаях (else) количество минут зависит от температуры воздуха. В условиях 2-4 вы должны были написать else if вместо if, чтобы связать условия между собой.
Мой вариант
Summary
if (isRaining || temperature < 10 || temperature > 35){
minutes = 0;
} else {
if (!isRaining && temperature >= 10 && temperature < 15){
minutes = 30;
} else if(!isRaining && temperature >= 15 && temperature < 25){
minutes = 40;
}else if(!isRaining && temperature >= 25 && temperature <= 35){
minutes = 20;
}
}
Это можно не писать.
Вот мой код
var temperature = 20;
var isRaining = true;
var minutes;
if (isRaining || temperature < 10 || temperature > 35){
minutes = 0;
console.log(“Прогулка не состоится”);
} else if (temperature >= 10 && temperature < 15){
minutes = 30;
console.log(“Можно погулять " + minutes + " минут”);
} else if(temperature >= 15 && temperature < 25){
minutes = 40;
console.log(“Можно погулять " + minutes + " минут”);
} else if(temperature >= 25 && temperature <= 35){
minutes = 20;
console.log(“Можно погулять " + minutes + " минут”);
}
Сначала долго не могла понять почему не работает, потом заметила что я написала => вместо >=
Можно и так:
var temperature = 20;
var isRaining = true;
var minutes = 0;
if (isRaining) {
minutes=0;
} else if (temperature>=10 && temperature<15) {
minutes=30;
} else
if (temperature>=15 && temperature<25) {
minutes=40;
} else if (temperature>=25 && temperature<=35) {
minutes=20;
}
У меня все правильно только он конечно длинный получился)))
var temperature = 30;
var isRaining = false;
var minutes = 0;
if (isRaining || temperature <= 9 || temperature >= 36)
{
minutes = 0
console.log(‘Гулять я не иду’);
}
if (!isRaining && temperature >= 10 && temperature < 15)
{
minutes = 30;
console.log (‘Прогулка длится ’ + minutes +(’ минут’));
}
if (!isRaining && temperature >= 15 && temperature < 25)
{
minutes = 40;
console.log(‘Прогулка длится ’ + minutes + ’ минут’);
}
if (!isRaining && temperature >=25 && temperature <= 35)
{
minutes = 20;
console.log (‘Прогулка длится ’ + minutes + ’ минут’);
}
Ваш код не проходит проверку
Можете пояснить, как вы пришли к такому решению? Как это работает ясно. Но я не понимаю, каким образом вы до этого додумались?
Поскольку количество минут прямо зависит от разницы температуры от 20, а разница может быть и отрицательной (например, если t > 20), то мы берём модуль от разности и отнимаем его от 20, получая количество минут.
var temperature = 20;
var isRaining = true;
var minutes = 0;
if (isRaining || temperature < 10 || temperature > 35) {
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;
}
Я думаю простенько и понятно. Первый раз в жизни писал. Все по пройденной программе, без углублений в то, что я еще не учил.
var temperature;
var isRaining;
var minutes;
if (isRaining || temperature < 10 || temperature > 35) {
minutes = 0;
} else {
if (temperature >= 10 && temperature < 15) {
minutes = 30;
}
if (temperature >= 15 && temperature < 25) {
minutes = 40;
}
if (temperature >= 25 && temperature <= 35) {
minutes = 20;
}
}
У меня следующий вариант.
var temperature = 20;
var isRaining = true;
var minutes = 0;
if (!isRaining) {
if(temperature >= 10 && temperature < 15) {
minutes = 30;
}
if(temperature >= 15 && temperature < 25) {
minutes = 40;
}
if(temperature >= 25 && temperature <= 35) {
minutes = 20;
}
} else {
minutes = 0;
}
Мне кажется, что вариант идеальный:)
Чтобы не вписывать в каждой строке “!isRaining”, можно использовать “else” и получится более компактный вариант:
if (isRaining || temperature < 10 || temperature > 35) {
minutes = 0;
} else {
if (temperature >= 10 && temperature < 15) {
minutes = 30;
}
if (temperature >= 15 && temperature < 25) {
minutes = 40;
}
if (temperature >= 25 && temperature <= 35) {
minutes = 20;
}
var temperature = 20;
var isRaining = true;
var minutes = 0;
// если нет дождя, то выполняется if с вложенными if
if (!isRaining) {
if (temperature >= 10 && temperature < 15) {
minutes = 30;
console.log( “Время прогулки” + minutes + “минут”);
}
if (temperature >= 15 && temperature < 25) {
minutes = 40;
console.log( “Время прогулки” + minutes + “минут”);
}
if (temperature >= 25 && temperature <= 35) {
minutes = 20;
console.log( ““Время прогулки” + minutes + “минут””);
}
}
// если есть дождь, то следовательно выполняется else
else {
minutes = 0;
console.log( “Время прогулки” + minutes + “минут”);
}
Зачем все усложять
Конечно вариантов много, но новичку читаемый такой код больше
var temperature = 20;
var isRaining = true;
var minutes = 0;
if (isRaining) {
console.log(minutes = 0);
}
if (!isRaining) {
if (temperature >= 10 && temperature < 15) {
console.log(minutes = 30);
}
if (temperature >= 15 && temperature < 25) {
console.log(minutes = 40);
}
if (temperature >= 25 && temperature <= 35) {
console.log(minutes = 20);
}
}
Мне кажется, что с модулями удобнее всего )
var temperature = 20;
var itsRaining = false;
var minutes;
if (itsRaining) {
minutes = 0;
}
else if(temperature < 0 || temperature > 35) {
minutes = 0;
}
else {
minutes = 20 - Math.abs(temperature - 20);
}
Это самый простой вариант на мой взляд.
var temperature = 15;
var isRaining = true;
var minutes = 0;
if(!isRaining && (temperature > 9 && temperature < 36 )){
if(temperature >= 10 && temperature < 15){
minutes = 30;
}
if(temperature >= 15 && temperature < 25){
minutes = 40;
}
if(temperature >= 25 && temperature <= 35){
minutes = 20;
}
}else{
minutes = 0;
}
/* Техническое задание
Мяу! Длительность прогулки зависит от нескольких условий.
Если идёт дождь, гулять я не хожу. В этом случае длительность прогулки равняется 0. А вот если дождя нет, всё зависит от температуры на улице:
Во-первых, если температура от 10°C (включительно) до 15°C (не включая это значение), я гуляю 30 минут.
Во-вторых, если температура от 15°C (включительно) до 25°C (не включая значение), я гуляю 40 минут.
В-третьих, при температуре от 25°C (включительно) до 35°C (включительно), я гуляю 20 минут.
В остальных случаях я никуда не выхожу: либо очень холодно, либо очень жарко.
Результат программы – время прогулки. Его необходимо записать в переменную minutes.
*/
Всем привет.
Мне кажется довольно оптимальное решение:
var temperature = 26;
var isRaining = true;
var minutes = 0;
if(isRaining || temperature < 10 || 35 < temperature) {
minutes = 0;
} else if(10 <= temperature && temperature < 15) {
minutes = 30;
} else if(15 <= temperature && temperature < 25) {
minutes = 40;
} else if(25 <= temperature && temperature <= 35) {
minutes = 20;
}
console.log(“Время прогулки " + minutes + " минут”);
Там было в теме, что чем короче - тем лучше. У меня так:
var temperature = 20;
var itsRaining = false;
var minutes;
if (itsRaining || temperature<0 || temperature>35) {minutes=0} else {
if (!itsRaining && temperature<=20){minutes=temperature} else {
if (!itsRaining && temperature>20) {minutes=20-(temperature-20)}}}