Как после else вернуться к стартовой подсказке? - PullRequest
0 голосов
/ 05 мая 2020

Я бы хотел, чтобы часть else следующего оператора if заставила это приглашение снова появиться. Другими словами, я хочу, чтобы приглашение возвращалось, если пользователь пишет что-то другое, кроме «да» или «нет».

var str = prompt("Do you want to come in?").toLowerCase();
if (srt === "yes"){
    alert("cool.");
}
else if (str === "no"){
    alert("goodbye.");
}
else {
    var str = prompt("Do you want to come in?").toLowerCase();
}

Ответы [ 3 ]

1 голос
/ 05 мая 2020

Вам нужна простая рекурсивная функция.

function showPrompt(msg) {
  var str = prompt(msg).toLowerCase();
  if (str === "yes") {
    alert("cool.");
  } else if (str === "no") {
    alert("goodbye.");
  } else {
    showPrompt(msg);
  }
}

showPrompt("Do you want to come in?");
0 голосов
/ 05 мая 2020

Вы можете создать три отдельные функции, каждая для обработки различных обязанностей.

// this function will only show prompt
function showPrompt() {
  return prompt("Do you want to come in?").toLowerCase();
}
// this function will be called to only show alert
function showAlert(alertText) {
  alert(alertText);
}
// this function will be called to show alert and then depending on the 
// value it will show alert or will call prompt
function callAlert() {
  const val = showPrompt();
  if (val === 'yes') {
    showAlert('cool');
  } else if (val === 'no') {
    showAlert('goodbye')
  } else {
    callAlert();
  }
}
callAlert();
0 голосов
/ 05 мая 2020

Думаю, вы допустили опечатку

function showPromptBox(msg) {

    var str = prompt(msg) ? prompt(msg).toLowerCase() : "" ;
    if (str === "yes") {
        alert("cool.");
    } else if (str === "no") {
        alert("goodbye.");
    } else {
        showPromptBox(msg);
    }

}

showPromptBox("Do you want to come in?");

Второй способ

var str = prompt("Do you want to come in?") ? prompt("Do you want to come in?").toLowerCase() : "";
if (str === "yes") {// typo mistake
    alert("cool.");
}
else if (str === "no") {
    alert("goodbye.");
}
else {
    var str = prompt("Do you want to come in?") ? prompt("Do you want to come in?").toLowerCase() : "";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...