Вторая программа "Сколько гулять?"

Можно и так:

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;
}
}

1 лайк

У меня следующий вариант.

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;
}

1 лайк

Мне кажется, что вариант идеальный:)

Чтобы не вписывать в каждой строке “!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;
}

1 лайк

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)}}}

var temperature = 25;
var itsRaining = false;
var minutes;

if (itsRaining || temperature <= 0 || temperature > 35) {
  minutes = 0;
  } else {
  minutes = (20 - Math.abs(20 - temperature));
  }  

console.log(minutes);

1 лайк

var temperature = 15;
var isRaining = false;
var minutes = 0;

if (!isRaining) {
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;
}
} else {
minutes = 0;
}
console.log(minutes);

Вот так вышло:

var temperature = 20;
var isRaining = true;
var minutes = 0;

if (temperature >= 10 && temperature < 15) {
minutes = 30;
}
if (temperature >= 15 && temperature < 25) {
minutes = 40;

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

Не знаю почему, но у меня вот такой вариант не принимало

if (isRaining || temperature < 10 || 35 < temperature ) {
  minutes = 0;
}
if (!isRaining && 10 <= temperature < 15) {
  minutes = 30; 
}
if (!isRaining && 15 <= temperature < 25) {
  minutes = 40; 
}
if (!isRaining && 25 <= temperature <= 35) {
  minutes = 20; 
} 

Однако, вот такой код оказался валидным. В чём разница? Условия ведь одни и те же

if (isRaining || temperature < 10 || 35 < temperature ) {
  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; 
}

p.s. if else нельзя использовать, потому что их ещё не давали в теме?