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

var temperature = 20;
var itsRaining = false;

var minutes;

if (itsRaining || temperature < 0 || temperature > 35) {
minutes = 0;
console.log(‘Fuck The Street’);
}
if (temperature > 0 && temperature <= 20 && !itsRaining) {
minutes = temperature;
}
if (temperature > 20 && temperature <= 35 && !itsRaining) {
minutes = 40 - temperature;
}

console.log('Walk for ’ + minutes);

Мой вариант, в начале сделал слишком много лишних участков кода, удаление которых никак не сказалось на результат. Вложенный if не использовал, поскольку не понимаю где его тут можно было бы применить.


var temperature = 20;
var itsRaining = false;

var minutes;

if (!itsRaining && temperature <= 20) {
minutes = temperature;
}
else if (!itsRaining && 20 < temperature && temperature < 35) {
minutes = 20 - (temperature - 20);
}
else {
minutes = 0;
}
console.log(‘Прогулка составит ’ + minutes + ’ минут.’);

У меня так вот просто

var temperature = 20;
var itsRaining = false;

var minutes;
if(itsRaining || temperature>35 || temperature< 0){
minutes = 0;
console.log(‘Длительность прогулки ’ + minutes + ’ минут’);
}else{
if(temperature > 20){
minutes = 20 - (temperature-20);
}
if(temperature< 20){
minutes = 20 - (20-temperature);
}
}

var temperature = 20;
var itsRaining = false;

var minutes = 18;

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

То ли я чего-то не понимаю, но у меня вышел такой вот трэш. Просто интуитивно раскидал значения. Пришлось присваивать 18 минут, чтобы код сработал). Ведь это неправильное решение?

Еле решила, так как пыталась в одном условии сравнить минуты которые больше и меньше 20. Потом поняла, что не смогу этого сделать сейчас.

var temperature = 20;
var itsRaining = false;

var minutes;

if(!itsRaining && temperature > 0 && temperature < 35){
if(temperature == 20){
minutes = 20;
console.log(minutes);
}
else if(temperature < 20){
minutes = temperature;
console.log(minutes);
}
else if(temperature > 20) {
var remainder = temperature - 20;
minutes = 20 - remainder;
console.log(minutes);
}
} else {
minutes = 0;
console.log(minutes);
}

А зачем в первом условии применили !itsRaining ?
Насколько я понял, в комбинированном условии с операторами или , если хоть одно условие true , то сработает значение minutes = 0:.

В общем вот мой вариант согласно условию и не отклоняясь от курса.

Summary
var temperature = 20;
var itsRaining = false;

var minutes;

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

console.log(‘Можно погулять ’ + minutes + ’ минут.’);

var temperature = 15;
var itsRaining = false;
var value = (temperature - 20) * 2;

var minutes;

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

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

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

var temperature = 20;
var itsRaining = false;

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

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

var temperature = 20;
var itsRaining = false;

var minutes;

if(temperature<=0 || temperature>35 || itsRaining) {
minutes=0;
console.log(‘длительность прогулки ’ + minutes + ’ минут’ );
} else {
if(temperature<=20 && temperature>0){
minutes=temperature;
console.log(‘длительность прогулки ’ + minutes + ’ минут’ );
}
if(temperature>20 && temperature<35){
minutes=40-temperature;
console.log(‘длительность прогулки ’ + minutes + ’ минут’ );
}
}

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

var temperature = 20;
var itsRaining = false;

var minutes;

if (itsRaining || temperature < 0 || temperature > 35){minutes = 0
} else {
console.log(‘Прогулка не состоится’)
}

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

console.log(‘Длительность прогулки ’ + minutes + ’ минут’)

Тут может намудрила, пыталась покороче сделать) Тоже не пропускает, хотя результаты правильные показывает.

var temperature = 20;
var itsRaining = false;

var minutes;

if (itsRaining || temperature < 0 || temperature > 35){minutes = 0
} else {
console.log(‘Прогулка не состоится’)
}

if ((temperature <=20 && temperature >= 0) || (temperature <=35 && temperature >= 20){minutes = (20- (temperature-20))
}

console.log(‘Длительность прогулки ’ + minutes + ’ минут’)

Как-то так.

var temperature = 20;
var itsRaining = false;

var minutes;

if (temperature < 35 && temperature > 0 && !itsRaining) {
if (temperature <= 20) {
minutes = temperature;
}
if (temperature > 20) {
minutes = 20 - (temperature - 20);
}
console.log(‘Прогулка состоится. Длительность: ’ + minutes + ’ минут’);
} else if (temperature >= 35 || temperature <= 0 || itsRaining === true) {
minutes = 0 ;
console.log(‘Прогулка не состоится. Длительность: ’ + minutes + ’ минут’);
}

Мой способ решения. Как кажется весьма лаконичный и не выходит из рамок изученного материала.
var temperature = 20;
var itsRaining = false;
var minutes;
if(!itsRaining && temperature > 0 && temperature < 35) {
if(temperature>=20) {
minutes = 20-(temperature-20);
} else {
minutes = 20-(20-temperature);
}
} else {
minutes = 0;
}
console.log("В данных условиях можно погулять “+ minutes + " минут”);

2 лайка

в задании было условие var temperature = 20, а у тебя 22 ???

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

При тестировании программы значение переменной можно менять.

У меня вот так вышло без привязки к цифрам (при вычислениях)

var temperature = 20;
var itsRaining = false;

var minutes = 20;

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

console.log('Гулять можно ’ + minutes + " минут");

Как-то так получилось

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

Код составил, код прошел, все нормально. Но.
Господа, такой вопрос:

В начале указанно, что

Переменная itsRaining хранит флаг «идёт дождь»

Окей. Идем дальше. Дальше объявляется переменная

var itsRaining = false;

Соответственно, в состоянии покоя itsRaining показывает, что дождь не идет.
А при !itsRaining - дождь идет (ибо false заменяется на true). Верно? Если нет - то в чем я ошибаюсь?

var temperature = 20;
var itsRaining = false;

var minutes;

if (itsRaining || temperature > 35 || temperature <= 0) { minutes = 0
console.log(‘Нельзя гулять’);
}
else {
if (temperature > 20) {
minutes = 20 - (temperature - 20)
console.log(‘Можно гулять ’ + minutes + ’ минут’);
}
else {
minutes = temperature;
console.log(‘Можно гулять ’ + minutes + ’ минут’);
}
}

1 лайк