Длительность прогулки (ч.2)

Получилось выполнить задание, но с условием создания новой переменной.

Сводка
var temperature = 25;
var itsRaining = false;

var minutes;
var n = 20 - temperature;

if (itsRaining) {
  minutes = 0;
  console.log('Идет дождь, прогулка ' + minutes + ' минут');
} 
else if (!itsRaining) {
  if (temperature < 0 || temperature > 35) {
   minutes = 0;
   console.log('Температура слишком низкая или слишком высокая, прогулка ' + minutes + ' минут')
  } 
  else if (temperature == 20) {
  minutes = 20;
  console.log('Идеальная прогулка, ' + minutes + ' минут');
  } 
  else if (temperature < 20) {
   if (temperature == 20 - n) {
    minutes = 20 - n;
    console.log('Время прогулки ' + minutes + ' минут');
   }
  }
  else if (temperature > 20) {
   if (temperature == 20 - n) {
     minutes = 20 - -n;
     console.log('Время прогулки ' + minutes + ' минут')
   }
  }
}

Доп. переменная не использовалась, но ощущение, что совсем не оптимально. И пришлось воспользоваться Math.abs, чтобы учесть отклонения в обе стороны от 20 град.:

Сводка

var temperature = 41;
var itsRaining = false;

var minutes = 0;

if(itsRaining == true || 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 < 20 || temperature > 20)){
minutes = 20 - Math.abs(20 - temperature);
console.log(‘Гулять ’ + minutes + ’ мин.’);}

1 лайк

Вот да, Math.abs тут напрашивается на первый взгляд

var temperature = 20;
var itsRaining = false;
var minutes = 0;

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

А третье условие из ТЗ не что иное как частный случай 4-го условия, с нулевым отклонением.

Но в итоге, наверное, лучше так

var temperature = 20;
var itsRaining = false;

var minutes;

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

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<=36){
minutes=20;
}

if(temperature<10&&temperature>35){
minutes=0;
}
}