Последние 2 строчки можно убрать. При 20 градусах формулы и так дадут 20 минут.
if (itsRaining || temperature < 0 || temperature > 35) {
minutes = 0;
} else if (temperature <= 20) {
minutes = 20 - (20 - temperature);
}else if (temperature >= 20) {
minutes = 20 + (20 - temperature);
}
спасибо) но так для общей картины что ли лучше)
Мой первый вариант получился такой:
var temperature = 20;
var itsRaining = false;
var minutes;
if (!itsRaining) {
if (temperature >= 0 || temperature <= 35) {
if (temperature <= 20) {
minutes = temperature;
}
if (temperature > 20) {
minutes = 20 - (temperature - 20);
}
}
if (temperature < 0 || temperature > 35) {
minutes = 0;
}
} else {
minutes = 0;
}
console.log('Длительность прогулки: ' + minutes + ' минут.');
Много кода, за мудрено получилось.
1 лайк
Второй вариант, подсмотрел ваш:
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);
}
console.log('Длительность прогулки: ' + minutes + ' минут.');
Меньше кода, все просто и логично. Почему сразу в голову не приходят простые решения.
1 лайк
Skorn
22.Сентябрь.2018 22:27:52
7
Есть ещё и такой вариант
var temperature = 35;
var itsRaining = false;
var minutes;
if (itsRaining || temperature > 35 || temperature <= 0){
minutes = 0;
}else if (temperature < 35 || temperature > 0){
minutes = 20 - (Math.abs(20 - temperature));
}
console.log(minutes);
1 лайк
Самый короткий вариант))
var temperature = 20;
var itsRaining = false;
var minutes;
var deviation = temperature - 20;
if (temperature <= 0 || temperature > 35 || itsRaining) {
minutes = 0;
}
else {
minutes = 20 - Math.abs(deviation);
}
я смотрю тут никто особо не любит переменными пользоваться новыми в процессе решения)
else if и Math.abs() во второй главе не проходили, поэтому у меня так получилось:
var temperature = 20;
var itsRaining = false;
var minutes;
minutes = 20;
if (!itsRaining && temperature > 0 && temperature < 35) {
if (temperature > 20) {
minutes = minutes - (temperature - 20);
}
if (temperature < 20) {
minutes = temperature;
}
} else {
minutes = 0;
}
я могу и короче, в одну строку)) но мы это не проходили в этой главе
var temperature = 20, itsRaining = false, minutes = (itsRaining || temperature < 0 || temperature > 35) ? 0 : 20 - Math.abs(20 - temperature);
если уж гнаться за краткостью, то вот так короче
var temperature = 20;
var itsRaining = false;
var minutes = (itsRaining || temperature < 0 || temperature > 35) ? 0 : 20 - Math.abs(20 - temperature);
1 лайк
let temperature = 20;
let itsRaining = false;
let minutes;
var idealTemp = 20;
var difference = Math.abs (idealTemp - temperature);
if (itsRaining || temperature < 0 || temperature > 35) {
minutes = 0;
}else if (temperature == 20) {
minutes == 20;
}else{
minutes = idealTemp - difference;
}