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

1) Возраст 18-50 — говорим «Всё в порядке», спрашиваем об образовании и ничего не делаем с ответом;
2) Возраст меньше 18 или больше 50:
2а) Если образование есть (а в случае 2 мы не узнавали, есть оно или нет), тогда «Добро пожаловать»;
2б) Если образование «не есть» (а мы не узнавали), тогда «Ты не пройдешь».
Варианты 2а и 2б не работают, так как в этих вариантах не задается переменная education.
Полагаю, вы хотели реализовать другую логику программы.

Ты переменную с образованием объявляешь внутри блока, который выполняется только при соблюдения условия, если оно не соблюдено, идет проверка на необъявленную переменную. Т.е. тебе ее лучше вне условной конструкции объявить или внутри условия еще условие написать (так лучше не делать)
т.е. не if () else (education) ..., a if () { if (education) ... }
Сейчас у тебя вообще если по минимуму исправить ошибку, идет вопрос о возрасте и в случае, если возраст не проходит, идет вопрос об образовании. И 13-летний шкет с образованием получает "Добро пожаловать"
Ну и по оптимизации кода:
вместо лишней переменной лучше age = Number( prompt() )
если проверяется true переменной, не надо == true писать, просто if (education)
т.е. не if () else (education) ..., a if () { if (education) ... }
Сейчас у тебя вообще если по минимуму исправить ошибку, идет вопрос о возрасте и в случае, если возраст не проходит, идет вопрос об образовании. И 13-летний шкет с образованием получает "Добро пожаловать"
Ну и по оптимизации кода:
вместо лишней переменной лучше age = Number( prompt() )
если проверяется true переменной, не надо == true писать, просто if (education)
https://jsbin.com/bofusokuqi/edit?console вот так надо
let age = prompt('Укажите свой возраст');
// измени код таким образом, чтобы выполнить требования
let education = confirm('Есть ли у вас высшее образование?');
let ageNormalized = Number(age);
if (ageNormalized >= 18 && ageNormalized <= 50) {
alert('Всё в порядке')
} else if (education){
alert('Добро пожаловать')
} else {
alert('Ты не пройдёшь!')
}
// измени код таким образом, чтобы выполнить требования
let education = confirm('Есть ли у вас высшее образование?');
let ageNormalized = Number(age);
if (ageNormalized >= 18 && ageNormalized <= 50) {
alert('Всё в порядке')
} else if (education){
alert('Добро пожаловать')
} else {
alert('Ты не пройдёшь!')
}
Похожие вопросы
- Как сделать что бы 2 функции выполнялись поочередно.JS
- Помогите разобраться в логике кода (замыкания)
- Вопрос по стилю кода. Следует ли проверять наличие свойства в объекте если я точно знаю что оно должно там быть?
- Гляньте код пожалуйста? Он работает, но мне кажется так не пишут. Да и по default что то не хочет работать код.
- Посмотрите пожалуйста задание. Всё работает. Тем не менее, интересно услышать замечания по коду.
- Как можно улучшить код?
- Нет желаемого результата в коде.
- Не могу понять почему код на js не работает.
- Java не понимаю код
- Проверьте 2 кода ((( пожалуйста и ткните носом на ошибку. В общем 1 код работает частично, а второй вообще не работает. JS