Третья программа “Протеиновый коктейль”

Решил добавлением двух дополнительных переменных:
(для таких же как я😁поясню логику: первая строка всем понятна(цикл),далее условием определяю, четное число или нет, если ДА- переменную “ch” увеличить на один, если НЕТ- переменную “nch” увеличить на один…Таким образом, зная кол-во четных и не четных дней посчитать общее количество уже не сложно…Надеюсь объяснил доступно)Всем удачного познания😉

let ch=0; /Количество четных дней/
let nch=0;/Количество не четных дней/

for(let i=1;i<=days;i++){
if(i%2==0){ch++;}
else {nch++;}
total=(evenDayAmountch)+(oddDayAmountnch);
}

я не знаю, сделал вот так. можно ли без else это делать или не стоит?

let days = 9; // Дней в периоде
let evenDayAmount = 200; // Количество протеина в чётные дни
let oddDayAmount = 100; // Количество протеина в нечётные дни
let total = 0; // Общее количество протеина


for (let i = 1; i <= days ; i++) {
  if (i % 2 === 1) {
    total += oddDayAmount;
    console.log ('нечетные дни ' + total)
    
  }
  if (i % 2 === 0) {
    total += evenDayAmount;
    console.log ('четные дни ' + total)
  }
}
1 лайк

Мне, кажется лучше использовать else, иначе у Вас выполняется еще раз две операции (1. это второй раз остаток от деления вычисляется и 2. сравнение)
for (let i = 1; i <= days; i++) {
if (i%2) {
total += oddDayAmount;
} else {
total += evenDayAmount;
}
}

2 лайка

Да, спасибо

более компактное, с использованием тернарного оператора:

let days = 9; // Дней в периоде
let evenDayAmount = 200; // Количество протеина в чётные дни
let oddDayAmount = 100; // Количество протеина в нечётные дни
let total = 0; // Общее количество протеина

for (let day = 1; day <= days; day++) {
let result = ( day % 2 === 0) ? total+=evenDayAmount : total += oddDayAmount;
}