Сколько гулять

Решил с помощью внедрения в код переменной отвечающей за параметр отклонения оптимальной температуры и заданной из вне. Смотрите что получилось

var temperature = 20;
var itsRaining = false;

var minutes;
var deviation; // отклонение

devitation = 20 - temperature; // определяем отклонение от желаемой температуры

if(temperature > 20) { // определяем отклонение от желаемой температуры при температуре > 20
devitation = - 20 + temperature;
}

if(itsRaining || temperature < 0 || temperature > 35) {
minutes = 0; // если дождливо и не подходящая температура - время прогулки равно 0
} else {
minutes = 20 - devitation; // высчитываем продолжительность прогулки
};

Маленький физик внутри меня плачет:

  • У Вас переменная deviation в одном выражении имеет единицы измерения градусы: devitation = - 20 + temperature;

  • В другом же выражении minutes = 20 - devitation; эта же переменная имеет ед/изм. минуты.

Зачем Вы так?

ЗЫ знаю, что придираюсь, просто такие нюансы усложняют понимание кода. теряется его логика.

Задача была решена по принципу использования костыля - “deviation” ибо по другому просто не получилось. Сам до конца не понял работу своей программы, решил - нужно обсудить.

Я лично сделал так )

код

var temperature = 22;
var itsRaining = false;
var ideal = 20;

var minutes;
var q;

if (itsRaining || temperature>35 || temperature==0) {
minutes = 0;
}
else
if (temperature == 20) {
minutes = 20;
}
else
if (temperature<20) {
console.log(q = 20 - temperature);
minutes = ideal-q;
}
else {
q=temperature-ideal;
console.log(q);
if (temperature>20) {
minutes = 20-q;
}
}

console.log(ideal);

Вот мой вариант. Без добавления дополнительных переменных. Не знаю, может тупо все это)

var temperature = 20;
var itsRaining = false;

var minutes;

if (temperature > 20) {
minutes = (20 - temperature) + 20;
}
else{
minutes = temperature;
}
if (!itsRaining && temperature >= 0 && temperature <= 35) {
console.log(‘Можно идти гулять в количесте ’ + minutes + ’ минут’);
}
else{
console.log(‘Гулять идти нельзя!’);
minutes= 0;
}