Все истории

😈 Одна лишняя точка с запятой сломала весь if

Копия публикации из архива канала. Дата и текст сохранены.

(C++)

Проверка есть. Скобки на месте. Ошибок нет.
А программа делает то, что ей запретили 🤨

Давайте разбираться вместе.

Посмотри на этот JavaScript-код:
const isAdmin = false;

if (isAdmin); {
console.log("Доступ разрешён!");
}

Пользователь не админ, но в консоли всё равно появится «Доступ разрешён!».

Виновник — ; сразу после условия.

Здесь точка с запятой — это пустая инструкция. Именно её и контролирует if: «Если пользователь админ — ничего не делай».

А блок { ... } после неё уже живёт отдельно и выполняется независимо от результата проверки. Красивые отступы его не спасут 🙃

Убираем один символ:
if (isAdmin) {
console.log("Доступ разрешён!");
}

🥳 Теперь всё работает как задумано.

💡 Условие не игнорировалось — оно управляло пустотой. Поэтому программа и не ругалась: синтаксис правильный, логика — нет.

Какой баг из одного символа съел у тебя больше всего времени? Делись в комментариях 👇