Попытка вложить оператор if / else в цикл while - PullRequest
0 голосов
/ 11 марта 2020

Я настраиваю следующее, пока l oop, чтобы продолжать печатать сообщение для каждого введенного четного числа, но печатать другое сообщение для нечетного числа и останавливаться:

userEnteredNumber = prompt("Please enter a number:");

while (userEnteredNumber%2 === 0) {
  if (userEnteredNumber%2 === 0) {
    document.write(userEnteredNumber + EVEN_MESSAGE);
  } else if (userEnteredNumber%2 !== 0) {
    document.write(userEnteredNumber + NOT_EVEN_MESSAGE);
  }
  userEnteredNumber = prompt("Please enter a number:");
  console.log(userEnteredNumber);
}

Прямо сейчас будет продолжать печатать с вводом четного номера и останавливаться, если введено нечетное число, но сообщение о нечетном номере не будет напечатано. Не совсем понимаю, почему нечетное сообщение не будет напечатано. Надеясь, что кто-то может помочь уточнить это для меня!

Ответы [ 2 ]

0 голосов
/ 11 марта 2020

Из вашего кода вы можете немного его изменить, чтобы он выглядел так:

while (true) {
  userEnteredNumber = prompt("Please enter a number:");
  if (userEnteredNumber%2 === 0) {
    document.write(userEnteredNumber + EVEN_MESSAGE);
  } else if (userEnteredNumber%2 !== 0) {
    document.write(userEnteredNumber + NOT_EVEN_MESSAGE);
    break;
  }
  console.log(userEnteredNumber);
}
0 голосов
/ 11 марта 2020

Больше похоже на это:

while (true) {

    userEnteredNumber = prompt("Please enter a number:");

    if (userEnteredNumber == null) { // they clicked cancel
       break;
    }

    if (userEnteredNumber%2 === 0) {
        document.write(userEnteredNumber + EVEN_MESSAGE);
    } else if (userEnteredNumber%2 !== 0) {
        document.write(userEnteredNumber + NOT_EVEN_MESSAGE);
    } else {
       document.write(NOT_VALID_MESSAGE + userEnteredNumber); 
    }

    console.log(userEnteredNumber);
}
...