Длительность прогулки

Я так сделал. Посмотрев на ваш код, понял что добавление var idealTemperature = 20 сделает код универсальнім и гибким.

var temperature = 20;
var itsRaining = false;

var minutes;

if(!itsRaining && (temperature >= 0 && temperature <= 35)){
  if(temperature === 20){
    minutes = 20;
  }
  
  if(temperature > 20){
    minutes = 20 - (temperature - 20);
  }else{
    minutes = 20 - (20 - temperature);
  }
  
}else{
  minutes = 0;
}
var temperature = 20;
var itsRaining = false;
var minutes;
(itsRaining == true ) ? minutes = 0:
(temperature < 0 || temperature > 35) ? minutes = 0:
(temperature == 20) ? minutes = 2:
minutes = 20 - Math.abs(temperature - 20);

Только не стоит заб(и)ывать присваивать ноль при невыполнении условия. Понятно, что переменная инициализирована со значением 0, но что если программа крутится циклически? Тогда при наступлении невыполнения условий в блоке if переменная minutes будет содержать последнее рассчитанное значение (и практически наверняка ненулевое).

Лишняя строчка (и, похоже, с опечаткой: 2 вместо 20)
(temperature == 20) ? minutes = 2:

если бы она была цикличной, то писалась иначе. не надо плодить условий, не оговоренных тз
а если очень хочется перезаписывать переменную в цикле, то ее можно объявлять в локальной области, а не в глобальной, например в функции

upd: а, вкурил к чему это обращение. ты только что изучил тернарники и теперь суешь их в каждое место? огорчу, за сложные конструкции на работе могут дать по щачлу и разжаловать в тестировщики

вот за это убивают

!itsRaining && temperature >= 0 && temperature <= 35 ? minutes = 20 - Math.abs(temperature - 20) : minutes = 0;

Нет, не только что. Да и таких хтонических строк стараюсь не плодить. Но спасибо за ответ, особенно за ту часть, что до upd.

вроде используя только то, что дает академия на данном этапе (без else if)
var temperature = 20;
var itsRaining = false;
var minutes;

if (temperature > 0 && temperature < 35 && itsRaining == false) {
if (temperature <=20 && temperature >= 0) {
minutes = temperature;
}
if (temperature >20 && temperature <= 35) {
minutes = 20 + (20 - temperature);
}
} else {
minutes = 0;
}

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

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

Подскажите пожалуйста, что тут не так? Почему не работает?

Код

var temperature = 20;
var isRaining = true;
var minutes = 0;
if ( temperature >= 10 && temperature <= 35 && !isRaining) {
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 + ’ минут.’);
}
} else {
minutes = 0;
console.log(‘Время прогулки ’ + minutes + ’ минут.’);
}

У вас сравнение прописано некорректно, без объединения условий. Перепишите все сравнения вот в таком виде:
(10<=temperature && temperature < 15)

То есть так, как написала я, писать в принципе нельзя?

Да, при таком написании код работать не должен. Это неправильное написание.

var temperature = 20;
var itsRaining = false;

var minutes;

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

var temperature = 20;
var itsRaining = false;

var minutes = 20;

if (itsRaining = true){
minutes = 0
} else if (temperature < 0 || temperature > 35 ) {
minutes = 0
} else if ( temperature = 20) {
minutes = 20
} else if ( --temperature && ++temperature) {
–minutes
};
скажите пожалуйста можно ли сделать через дикрим. и инкримен.
Две проверки у меня не проходит через последнее else if

var temperature = 20;
var itsRaining = false;

var minutes = 0;

if(itsRaining === true) {
minutes;
}

if( !itsRaining && temperature < 0 && temperature > 35) {
minutes;
}
if( !itsRaining && temperature == 20) {
minutes = 20;
}
if(temperature > 20 && temperature < 20) {
minutes = 20 - (temperature - 20);
}

Почему не работает код? Не проходит 2 проверки

Прошел сам, ради интереса поправил твой.

  var temperature = 20;
  var itsRaining = false;

  var minutes = 0;

  if( itsRaining || temperature < 0 || temperature > 35) {
  minutes;
  }

  else if(temperature == 20) {
  minutes = 20;
  }

  else if(temperature > 20) {
  minutes = 20 - (temperature - 20);
  }
  else if(temperature < 20) {
  minutes = 20 - (20 - temperature);
  }

(itsRaining || temperature < -0 || temperature > 35) ? minutes = 0: minutes = 20 - Math.abs(20 - temperature);

Можно что-то проще, как думаете?

Всем привет, хотел бы узнать мнения экспертов, как можно улучшить код? Применял те знания, которые были изучены до данной главы.
6/6 выполнено верно.

let temperature = 22;
let itsRaining = false;
let minutes;
if (itsRaining ||temperature<0 || temperature>35) {
minutes=0;
console.log(‘Сидим дома. Время прогулки: ‘+minutes+’ минут’);
} else if (itsRaining==false && temperature===20) {
minutes=20;
console.log(‘Идеально, пошли гулять. Время прогулки: ‘+minutes+’ минут’);
} else if (itsRaining==false && temperature>0 && temperature<20) {
minutes=temperature;
console.log(‘Таки дела, время прогулки: ‘+minutes+’ минут’);
} else if (itsRaining==false && temperature>20 && temperature<35) {
minutes=20-(temperature-20);
console.log(‘Таки дела, время прогулки: ‘+minutes+’ минут’);
}

Ну как бы моё решение. Возведение в модуль числа в js гуглится за 10 секунд.

let temperature = 20;
let idealTemperature = 20;
let itsRaining = false;

let minutes;

if (temperature === idealTemperature) {
  minutes = 20;
}

if (temperature > 0 || temperature < 35) {
  let deviation = Math.abs(idealTemperature - temperature);
  minutes = 20 - deviation;
}

if (temperature < 0 || temperature > 35 || itsRaining) {
  minutes = 0;
}

let temperature = 20;
let itsRaining = false;

let minutes;
let perfectWeather = 20;

if (itsRaining == true || temperature < 0 || temperature>35) {
minutes = 0;
}

else if (temperature>=perfectWeather) {
minutes = perfectWeather*2-temperature;
}
//выше получается, т.к. minutes = perfectWeather-(temperature-perfectWeather);
else minutes = temperature;