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

Да, конечно проще, согласен. Но если учитывать то, что не в одном из 16 заданий курса “Условий”, данный метод не используется и его применение на практике не раскрывается - мы “типо” его не знаем - решение без его использование, как то логичнее и правильнее для юных падаванов.

1 лайк

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

спасибо за совет, я понимаю что чем короче код, тем менее времени нужно чтобы его выполнить, поэтому и просил поправить меня, чтобы изначально стараться учить и писать правильно.:wink:

var temperature = 24;

var itsRaining = false;

var minutes;

minutes = temperature

if(itsRaining || temperature < 0 || temperature > 35) {console.log(minutes = 0);

}

else if( temperature < 20) {

console.log(minutes = temperature);

} else if( temperature > 20 ) {

console.log(‘можно гулять ’ + (minutes = 20 - (temperature - 20)) + ’ минут’);

}
подскажите всё ли правильно я написал, проверку прошёл.

Подскажите, что не так у меня (это моя 3я программа на javascript)

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

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

console.log(minutes);

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

в вашем коде почему то отсутствуют обычные операторы сравнения и очень много повторяющегося кода. ветка else не нужна, потому что вы и так устанавливаете дефолтное значение var minutes = 0;

должно быть так
var temperature = 20;
var isRaining = true;
var minutes = 0;

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

console.log(minutes);

мой вариант… Годится?

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

1 лайк

var temperature = 28;
var itsRaining = false;
var minutes;

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

Добрый вечер! Покритикуйте код пожалуйста:

var temperature = 20;
var ideal = 20;

var itsRaining = false;
var minutes;

if(temperature > ideal){
minutes = ideal - (temperature - ideal);
}

if(temperature < ideal){
minutes = temperature;
}

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

Я так сделал. Посмотрев на ваш код, понял что добавление 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)

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