Я, вероятно, буду задавать глупый вопрос, но мне действительно нужен окончательный вердикт по этому вопросу.Javascript - нужна помощь, чтобы понять, почему цикл while не работает
У меня есть 2 цикла.
Код 1:
document.getElementById("guess").onclick = function() {
var myNumber = document.getElementById("myNumber").value;
var gotIt = false;
var numberOfGuesses = 1;
while (gotIt == false) {
var guess = Math.random();
guess = guess * 6;
guess = Math.floor(guess);
if (guess == myNumber) {
gotIt = true;
alert("Got it! It was a " + guess + ". It took me " + numberOfGuesses + " guesses.");
} else {
numberOfGuesses++;
}
}
}
<input type="text" name="" id="myNumber">
<button id="guess">Guess!</button>
Код 2:
document.getElementById("guess").onclick = function() {
var myNumber = document.getElementById("myNumber").value;
var gotIt = false;
var numberOfGuesses = 1;
while (gotIt == false) {
var guess = Math.random();
guess = guess * 6;
guess = Math.floor(guess);
if (guess == myNumber) {
gotIt = true;
alert("Got it! It was a " + guess + ". It took me " + numberOfGuesses + " guesses.");
} else {
numberOfGuesses++;
}
}
}
<select id="myNumber">
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
<button id="guess">Guess!</button>
2-ая часть работает отлично; 1-й приводит к сбою браузера. Моя идея заключается в том, что в первом случае слишком много циклов, чтобы догадываться, но я не могу понять, почему это происходит.
Спасибо всем, кто хочет объяснить.
В чем разница между двумя частями кода? Они выглядят почти точно так же. – Pointy
В любом случае первый бит кода работает просто отлично для меня. – Pointy
Работает и для меня. Помните, что если вы поместите любое число больше 5 или меньше 0, ваш код никогда не сможет угадать этот номер. И вы получите бесконечный цикл, и это заставит ваш браузер зависать. –