var minutes=20;
if (itsRaining || temperature >= 35 || temperature <= 0) {minutes=0}
//Сразу обозначим условия при котором прогулка не состоится. Если идет дождь или температура 35+ или 0- , то минуты=0. //
else if (temperature<=20) {minutes=temperature}
//Сокращение длительности прогулки я реализовал довольна просто. Иначе если, температура меньше 20, то temperature=minutes (если 10 градусов то и минут на прогулку 10)//
else (minutes=minutes*2-temperature)
Иначе умножаем минуты на 2 и вычитаем температуру. Логика такая- как видно, условия выше сокращают диапазон возможных значений переменной minutes для этого условия “иначе”.
(21-35) Для того чтобы вычитание из благоприятного времени - неблагоприятной температуры совершалось верно. умножаем минуты на два и вычитаем температуры (чот какая то белиберда, но как мог)
console.log('Минут на прогулку '+minutes);
Зачем я создал тему? Просто себя порадовать, ну и мб кому нибудь поможет этот код)
Подскажите, для синтаксиса все равно есть ли действие внутри else с вложенным условием или можно начинать сразу с нового условия? т.е. как ребята выше пишут else if (…) {…} else if (…) {…}
И вообще, если кто практикующий JS как считается хорошим тоном писать такие вложенности?
страшна, вырубай, нинадаа
if (!isRaining && temperature >= 10 && temperature <= 35) {
if (temperature >= 10 && temperature < 15) {
minutes = 30;
} else {
if (temperature >= 15 && temperature < 25) {
minutes = 40;
} else {
minutes = 20;
}
}
}
console.log('Кекс гуляет: '+minutes+' минут.');
Если уже написана ветка else, то внутри нее лучше дописать действие. Здесь были варианты кода, когда else не использовалось вообще, то есть просто череда независимых друг от друга условий.
Что касается хорошего тона, то если условий становится очень много, то используют конструкцию switch case (код более читабельный и понятный). В целом вариант выбора конструкции зависит от конкретной задачи.
По вашему коду могу сказать, что вряд ли хорошо, что вы внутри условий каждый раз создаете новую переменную. Вам нужно было просто переопределять ее значение в зависимости от условий.
это касаемо ввода var каждый раз? эт косяк, да, поправлю сейчас, спасибо за ответ.
"Сколько гулять" из теории
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;
}
}
"Длительность прогулки" из практики
var temperature = 20;
var itsRaining = false;
var minutes = 0;
if (!itsRaining) {
if (temperature >= 0 && temperature <= 35) {
minutes = 20 - Math.abs(temperature - 20);
}
}
var temperature = 20;
var itsRaining = false;
var minutes = 0;
if (!itsRaining && temperature >= 0 && temperature <= 35) {
minutes = 20 - Math.abs(temperature - 20);
}
у вас код нерабочий и не соответствует styleguide. попробуйте переписать, когда полностью пройдете курсы.
upd: вы не к тому заданию топик открыли, тут задание продвинутого уровня
попробуйте проверку на isRaining сделать общей для температур. т.е. проверку на температуры вложить внутрь проверки на дождь.
какому именно стайлгайду? а ещё лучше дайте ссылку на курс Академии, где есть информация по стайлгайду, которого стоит придерживаться - это будет гораздо полезнее для новичков, чем просто ваша фраза “не соответствует”.