Я пытаюсь получить голову вокруг do/while петли и логические операторы в js. Моя проблема заключается в том, чтобы встраивать оператор if/else if/else в раздел do, поскольку он продолжает циклировать предупреждения. Кроме того, если я нахожу что-то другое, кроме редкого, среднего или хорошо сделанного, оно переходит в оператор else if, а не в оператор else, даже если я указал средний или хорошо сделанный для инструкции else if. Где я иду не так? Любая помощь будет оценена по достоинству.if elseif инструкция в do/while заявление бесконечный цикл javascript
Спасибо.
var food;
var steak;
food = prompt("Hey what type of food do you want to eat? We have steak, chicken, legumes, kangaroo or pufferfish?","Select your choice here.").toUpperCase();
switch (food) {
case 'STEAK':
alert ("Sure no problem, how would you like your steak done?");
steak = prompt("Would you like your steak done rare, medium or well-done?").toUpperCase();
do {
if (steak === "RARE") {
alert ("You eat the rare steak");
}
else if (steak === "MEDIUM"||"WELL-DONE") {
alert("You eat your steak and it's good.");
}
else {
alert("Sorry didn't catch that.");
steak = prompt("Choose rare, medium or well-done.");
}
} while (steak !== "RARE" || "MEDIUM" || "WELL-DONE");
break;
}
Синтаксис как 'if (steak ===" MEDIUM "||" WELL-DONE ")' не летает в JavaScript. Вы должны делать каждое сравнение отдельно. Например. 'if (steak ===" MEDIUM "steak ===" WELL-DONE ")' – j08691
@ j08691 уже указал, как вам нужно делать сравнения. Причина бесконечного цикла заключается в том, что '' любая строка '' является правдой, т.е. сравнение такое же, как 'while (steak! ==" RARE "|| true || true), что всегда верно. – vesse