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

У вас все условия работают независимо друг от друга. То есть условия 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 + " минут”);
}

Сначала долго не могла понять почему не работает, потом заметила что я написала => вместо >=

:woman_facepalming:

Можно и так:

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