Третья программа: «Протеиновый коктейль!» Подробное объяснение

А если мы эту ветку уберем, то кушать будет в первый и второй день?)

Без ветки получается незаконченная связка if - else

Это нормальная практика, нет такого понятия как незаконченная связка if- else

Напиши, как ты видишь?

for (var i = days; i > 0; i -= 1) {
  currentDay = i % period;
  if (currentDay === 0) {
    if (i % 7 === 6 || i % 7 === 0 ) {
      total += weekendAmount;
    } else {
      total += workDayAmount;
    }
  }
}

Логично, работает)))

Форматируйте свой код в первом сообщении с помощью кнопки </> в редакторе сообщений, пожалуйста.

Ready

Видимо не ready

Было бы намного удобнее, если бы Вы, разработчики, детально разбирали КАЖДОЕ задание. Теория преподается из рук вон, приходится ползать по сторонним сайтам. Странно, что я взял решение админа, которое должно быть образцовым, а потом вылезают непонятные ляпы. И Ваш раздел по JS просто ужасен, даже по сравнению с остальными темами. Простите за резкость

1 лайк

@juwain, @GreenLera, :point_up: отзыв по разделу js.

Не видела решения админа, поделитесь?

1 лайк

Здесь js изучается не в контексте программирования, а в контексте оживления верстки. Для первого знакомства not bad

Не то чтобы прям ужасен, но определенно он не дотягивает до уровня курсов по CSS ни по теории, ни по продуманности заданий. Да и в курсах по JS ребячество с Кексиками уже неуместно, забивает голову ерундой.

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

for (let i = 1; i <= days; i++) {

if (i % 2 === 0) {
total += evenDayAmount;
console.log('чётные ’ + total)
} else {
total += oddDayAmount;
console.log('нечётные ’ + total)
}
}

1 лайк

Решил двумя способами.
Первый - корявый, но так же верный.
А вот второй - общепринятый))

/* первый способ */

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

if (days%2===0) {
total=(days/2)*evenDayAmount + (days/2)*oddDayAmount
}
else if (days%2!==0) {
total = days%2 * oddDayAmount + (days - days%2) /2 * evenDayAmount + (days - days%2) /2 * oddDayAmount
}

/* второй способ */

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

for (let i=1; days>=i; i++) {
if (i%2!==0) {
total += oddDayAmount;
}
else {
total += evenDayAmount;
}
}

> for (let i = 1; i <= days; i++) {
>   if (i % 2 === 0) { 
>     total += evenDayAmount;
>   }
>   else {
>     total += oddDayAmount;
>   }
> }

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

for (let n = 1; n <= days; n++) {
if (n % 2 === 0) {
total += evenDayAmount;
} else {
total += oddDayAmount;
}
}

Думаю, объявлять переменную-счетчик здесь не нужно.

Мой вариант:

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

for (days; days > 0; days--) {
  if (days % 2 === 0) {
    total += evenDayAmount;
  } else {
    total += oddDayAmount;
  }
}

Первый вариант:

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

for (let i = 1; i <= days; i++) {
  if (i % 2 === 0) {
  total += evenDayAmount;
    } else {
    total += oddDayAmount;
      }
  }

Второй вариант:

while (days > 0) {
  (days % 2 === 0) ? (total += evenDayAmount):
  (total += oddDayAmount);
  days--  
  }
1 лайк