javascript-tutorial / ru.javascript.info

Современный учебник JavaScript

Home Page:https://learn.javascript.ru

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Вопрос]: Проблемы с логикой возникли не в задачах, а в статье.

autodatchik24 opened this issue · comments

Описание

Проблемы с логикой возникли не в задачах, а в статье, где для примера работы ИЛИ, привели время работы организации, и где результатом был isWeekend. Чтобы понять приведенный пример, потребовалось миллион лет. Уважаемый админ, можно было для людей пояснить, что в данном красивом примере не предполагалось что время 12 часов выпадает на будничный день. Можете поправить?

Здравствуйте.

Если время 12 часов выпадает на будний день, if и не должен работать, поскольку офис в это время открыт. Что конкретно вызывает затруднения здесь?

let hour = 12;
let isWeekend = false; // установим "не выходной" ("будний день")

if (hour < 10 || hour > 18 || isWeekend) {
  alert("Офис закрыт.") // все операнды являются ложными, возвращается последний из них — false, поэтому alert не сработает
} else {
  alert("Офис открыт.") // сработает: выполнение кода перешло в ветку "иначе" (else), так как условие в if (...) {} было false
}

А если создать цепочкой присвоения для будних дней переменные и присвоить
последнему false, ну или без цепочки, для наглядного понимания.

Слабо понимаю, о чём речь. Возможно, приведёте пример кода?

Просто для новичков разобраться с первого раза трудно. Вроде если рабочий день и время
рабочее, то почему всё равно выходной выскакивает.

Вроде бы, комментарий возле alert всё вполне объясняет. По крайней мере ни в комментариях под статьёй, ни в github по поводу данного примера возражений ещё не было.

В логике кода ничего не поменялось, вы добавили неиспользуемую переменную Sunday.

Переменная типа isSunday может и неиспользуется, но если на дворе представить что Воскресенье и это рабочий день, то трудно с ходу понять как сработает код.

И как это следует понимать? 😂

Я предлагаю вам лучше прислать сюда ту часть статьи, но модифицированную таким образом, чтобы она была понятна новичку. То есть готовый вариант, который вы хотели бы видеть в учебнике.

Речь об этом фрагменте всё ещё:

image

Там, где группировка case идёт по уроку, переменная (а = 3), вместо (а = 2 + 2).

Подробнее, пожалуйста. Не совсем понятно, о чём речь. Какой урок? Что за пример?

https://learn.javascript.ru/switch#gruppirovka-case

Посмотрите чему равна переменная (а).

В этом разделе обращается внимание читателя на часть кода с группировкой case, выделены строчки с 8 по 12. Эта часть сработает только в том случае, если $\huge{a=3}$ или $\huge{a=5}$. Здесь для a выбрано значение 3.

В случае, если $\large{a=2+2}$, сработает только та часть кода, которая выводит сообщение «Правильно».

let hour = 12;
let isWeekend = true; // Будет ('Офис закрыт. ') , так как это выходной.
Если значение - false, то будет ('Офис открыт.'), так как это будет рабочий
день и рабочее время - 12.
if (hour < 10 || hour > 18 || isWeekend) {
alert('Офис закрыт. ') ;
} else {
alert('Офис открыт. ') ;
};

Ну или создать переменные будних дней с falsy значениями. Правда код
разбухнет тогда. :)

Касательно этого — всё-таки делаю вывод, что предложенное дополнительное пояснение никакой практической пользы, к сожалению, не несёт. К тому же, как я уже отметил, не помню, чтобы у кого-либо возникали вопросы конкретно по этому фрагменту кода. Возможно, вам следует прочитать материал ещё раз, внимательнее. На первых этапах обучения в целом любая тема будет казаться трудной, но, это лишь временно.

Если будут ещё какие-либо замечания — обязательно открывайте Issue или Pull Request, обсудим.

Можно и заменить, если есть хорошая альтернатива, — нет проблем. Присылайте, посмотрим.