(C++)
Проверка есть. Скобки на месте. Ошибок нет.
А программа делает то, что ей запретили 🤨
Давайте разбираться вместе.
Посмотри на этот JavaScript-код:
const isAdmin = false;
if (isAdmin); {
console.log("Доступ разрешён!");
}
Пользователь не админ, но в консоли всё равно появится «Доступ разрешён!».
Виновник — ; сразу после условия.
Здесь точка с запятой — это пустая инструкция. Именно её и контролирует if: «Если пользователь админ — ничего не делай».
А блок { ... } после неё уже живёт отдельно и выполняется независимо от результата проверки. Красивые отступы его не спасут 🙃
Убираем один символ:
if (isAdmin) {
console.log("Доступ разрешён!");
}
🥳 Теперь всё работает как задумано.
💡 Условие не игнорировалось — оно управляло пустотой. Поэтому программа и не ругалась: синтаксис правильный, логика — нет.
Какой баг из одного символа съел у тебя больше всего времени? Делись в комментариях 👇