выход из бесконечного цикла while, почему этот код не работает - PullRequest
0 голосов
/ 02 сентября 2018

Я пытаюсь сделать разрыв цикла while, когда пользователь вводит 5, но почему этот код не работает:

var arr = [];
while(!arr.includes(5)){
    arr.push(prompt("Enter a Number"));

}
alert("NUmber is here"); 

Ответы [ 4 ]

0 голосов
/ 02 сентября 2018
var arr = [];
while(!arr.includes(5)){
  var num = parseInt(prompt("Enter a Number"));
  arr.push(num);
}
alert("NUmber is here");

Или вы можете использовать:

var arr = [];
while(!arr.includes('5')){
  arr.push(prompt("Enter a Number"));
}
alert("NUmber is here");

Потому что включает в себя проверку равенства строго.

0 голосов
/ 02 сентября 2018

Значение, возвращаемое из приглашения, является строкой, поэтому преобразуйте ее в число, а затем выполните проверку

var arr = [];
while(!arr.includes(5)){
    arr.push(parseInt(prompt("Enter a Number")));

}
alert("NUmber is here");
0 голосов
/ 02 сентября 2018

метод includes использует строгое равенство (===) для проверки наличия определенного значения в массиве. prompt всегда будет возвращать строку, а не число, поэтому целое число 5 никогда не будет в массиве. Однако строка «5» будет.

Когда вы изменяете свой код на while(!arr.includes('5')){ (как указывает CertainPerformance, он будет работать.

0 голосов
/ 02 сентября 2018

prompt всегда будет возвращать строку , а не число. Изменить на:

while(!arr.includes('5')){

var arr = [];
while(!arr.includes('5')){
    arr.push(prompt("Enter a Number"));

}
alert("NUmber is here"); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...