JavaScript

Не выполняется код

Подскажите, в чем здесь ошибка

let age = prompt('Укажите свой возраст');
let ageNormalized = Number(age);
if (ageNormalized >= 18 && ageNormalized <= 50) {
alert('Всё в порядке');
let education = confirm('Есть ли у вас высшее образование?');
} else if (education == true) {
alert('Добро пожаловать');
} else {
alert('Ты не пройдёшь!');
}
let education - надо объявить до проверки условия
Андрей Асылов
Андрей Асылов
8 866
Лучший ответ
У вас три варианта: 1, 2а и 2б.

1) Возраст 18-50 — говорим «Всё в порядке», спрашиваем об образовании и ничего не делаем с ответом;

2) Возраст меньше 18 или больше 50:

2а) Если образование есть (а в случае 2 мы не узнавали, есть оно или нет), тогда «Добро пожаловать»;

2б) Если образование «не есть» (а мы не узнавали), тогда «Ты не пройдешь».

Варианты 2а и 2б не работают, так как в этих вариантах не задается переменная education.

Полагаю, вы хотели реализовать другую логику программы.
Max Ekimov
Max Ekimov
71 484
Ты переменную с образованием объявляешь внутри блока, который выполняется только при соблюдения условия, если оно не соблюдено, идет проверка на необъявленную переменную. Т.е. тебе ее лучше вне условной конструкции объявить или внутри условия еще условие написать (так лучше не делать)
т.е. не if () else (education) ..., a if () { if (education) ... }

Сейчас у тебя вообще если по минимуму исправить ошибку, идет вопрос о возрасте и в случае, если возраст не проходит, идет вопрос об образовании. И 13-летний шкет с образованием получает "Добро пожаловать"

Ну и по оптимизации кода:
вместо лишней переменной лучше age = Number( prompt() )
если проверяется true переменной, не надо == true писать, просто if (education)
Maksim Virodov
Maksim Virodov
59 846
let age = prompt('Укажите свой возраст');


// измени код таким образом, чтобы выполнить требования

let education = confirm('Есть ли у вас высшее образование?');

let ageNormalized = Number(age);

if (ageNormalized >= 18 && ageNormalized <= 50) {

alert('Всё в порядке')

} else if (education){

alert('Добро пожаловать')

} else {

alert('Ты не пройдёшь!')

}