我正在学习这种语言,我的老师要求我写一些代码。检查了所有与此相关的其他帖子,但找不到答案,我只是不明白为什么我会陷入无限循环,因为条件似乎很明确(至少对我来说是哈哈):num1必须不同于num2。在用户键入与num1相同的数字之前,该代码应该一直在num2中进行提问。
var num1 = Number(prompt("Digite um número"))
console.log("Fight!")
arrayFinal = []
var num2 = Number(prompt("Que número o jogador 1 escolheu?"))
for (num1; num2 !== num1; num2) {
arrayFinal.push(num2)
console.log("O número chutado foi: ", num2)
if (num2 > num1) {
console.log("MISS! O número é menor!")
} else if (num2 < num1) {
console.log("MISS! O númenor é maior!")
}
}
console.log("GAME OVER! O jogador 2 venceu! O número de tentativas foi: " +
(arrayFinal.lenght + 1))
答案 0 :(得分:1)
您想多次询问用户num2
,因此其prompt
应该在循环中。
答案 1 :(得分:0)
您的循环从num1
开始。它还表示只要num2 !== num1
,它将继续循环。但是在第6行的末尾,您只需要简单地放入num2
,它就不会改变num1。因此,只要先前num1
不等于num2
,它就总是不等于num2
,从而使循环无限。
您可以在循环外将num2
声明为null,然后在循环内进行提示。这样,当num2
等于num1
时,num2 !== num1
返回false
,并且该循环将在该迭代之后停止循环。否则,它将继续循环并反复提示...直到用户输入与num1
相同的数字,然后它将在当前迭代之后停止循环。
此外,将原始代码中的第8-13行从循环中移出,以使它不会在代码反复提示时重复出现。
var num1 = Number(prompt("Digite um número"));
console.log("Fight!");
arrayFinal = [];
for (num1; num2 !== num1; num2) {
var num2 = Number(prompt("Que número o jogador 1 escolheu?")); //dont forget
semicolon
arrayFinal.push(num2);
console.log("O número chutado foi: ", num2);
if (num2 > num1) {
console.log("MISS! O número é menor!");
} else if (num2 < num1) {
console.log("MISS! O númenor é maior!");
}
}
console.log("GAME OVER! O jogador 2 venceu! O número de tentativas foi: " +
(arrayFinal.length + 1));