Циклы. 17/28 Экономичная печать Задача 2

Объясните мне второе задание

  1. После переменной consumptionPerPage создайте переменную economyMode , которая содержит false
  2. В цикле после вызова keks.print() добавьте условие, которое срабатывает, если economyMode равен true и номер текущей страницы page больше 3
  3. Внутри этого условия увеличивайте consumptionTotal на consumptionPerPage * 0.5 с помощью оператора +=
    здесь задание

почему мы пишем в условии просто economyMode , без true?

 var totalPages = 6; // Всего страниц в документе

var consumptionTotal = 0; // Общий расход тонера
var consumptionPerPage = 70; // Расход краски на одну страницу
var economyMode = false;

for (var page = 1; page <= totalPages; page++) {
  keks.print(page);

  // Добавляйте условие сюда
  if **(economyMode && page > 3)** {
    consumptionTotal += consumptionPerPage * 0.5;    
  }
  
  consumptionTotal += consumptionPerPage;
  console.log(consumptionTotal);
}

объяснение здесь https://htmlacademy.ru/courses/209/run/10

1 лайк

логические выражения можно не прописывать через сравнение-равенство. если оно “истина”, то удовлетворяет условию, если ложь, то нет. понимаете, в условии должно содержаться логическое выражение. фраза economyMode == true толкуется как равно ли то, что записано в переменную булеву значению “истина”? и если равно, то это сравнение возвращает true.
но у нас уже есть true, смысла прокручивать через сравнение его нет.
да и в принципе “условие” приведет выражение в скобках к булеву типу, если это не было сделано разработчиком.

1 лайк

Не понятен один момент. А зачем вообще в условии присваивать economyMode = false? Почему именно false присваиваем? И что меняется от того, что потом переписываем туда значение true? (2я задача: Поменяйте значение economyMode на true)

false, т.к. есть условие if (economyMode && page > 3) { ... }
а именно economyMode && page > 3
мы знаем, что условие будет выполняться, если в скобках будет булево значение true
чтобы оно было true, нам нужна таблица истинности для логического оператора && (AND, конъюнкция)


итак, как мы видим, для того, чтобы было true, надо чтобы оба операнда были true
т.е. условие по первой задаче не будет выполняться никогда при economyMode == false, а во второй (второй? понятия не имею, курсы закончил 2 года назад) при количестве страниц более 3.
собственно вся задача на экономию краски принтера при включенном режиме экономии и одновременно при этом количестве страниц больше 3.

Спасибо.