Я так сделал. Посмотрев на ваш код, понял что добавление 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;
}
LHim
15.Июнь.2020 07:55:14
50
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;
}
Подскажите пожалуйста, что тут не так? Почему не работает?
Eleven
15.Июнь.2020 13:27:24
52
У вас сравнение прописано некорректно, без объединения условий. Перепишите все сравнения вот в таком виде:
(10<=temperature && temperature < 15)
LHim
17.Июнь.2020 02:37:07
53
То есть так, как написала я, писать в принципе нельзя?
Eleven
17.Июнь.2020 13:28:52
55
Да, при таком написании код работать не должен. Это неправильное написание.
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 проверки
Casto
11.Сентябрь.2020 16:35:44
59
Прошел сам, ради интереса поправил твой.
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);
Можно что-то проще, как думаете?
Nigma
05.Октябрь.2020 12:16:31
61
Всем привет, хотел бы узнать мнения экспертов, как можно улучшить код? Применял те знания, которые были изучены до данной главы.
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;
}
OlgaK
04.Ноябрь.2020 21:58:56
63
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;