Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
autodatchik24 opened this issue Mar 16, 2024 · 15 comments
Labels

Comments

@autodatchik24
Copy link

Описание

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

@Alexandre887
Copy link
Member

Alexandre887 commented Mar 16, 2024

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

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

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

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

@autodatchik24
Copy link
Author

autodatchik24 commented Mar 16, 2024 via email

@Alexandre887
Copy link
Member

Alexandre887 commented Mar 16, 2024

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

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

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

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

@autodatchik24
Copy link
Author

autodatchik24 commented Mar 16, 2024 via email

@Alexandre887
Copy link
Member

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

@autodatchik24
Copy link
Author

autodatchik24 commented Mar 17, 2024 via email

@Alexandre887
Copy link
Member

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

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

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

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

image

@autodatchik24
Copy link
Author

autodatchik24 commented Mar 17, 2024 via email

@autodatchik24
Copy link
Author

autodatchik24 commented May 1, 2024 via email

@Alexandre887
Copy link
Member

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

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

@autodatchik24
Copy link
Author

autodatchik24 commented May 3, 2024 via email

@Alexandre887
Copy link
Member

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

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

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

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

@Alexandre887
Copy link
Member

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

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

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

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

@Alexandre887 Alexandre887 closed this as not planned Won't fix, can't repro, duplicate, stale May 3, 2024
@autodatchik24
Copy link
Author

autodatchik24 commented May 3, 2024 via email

@Alexandre887
Copy link
Member

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants