Javascript Can';我没有发现为什么我的循环是无限的

Javascript Can';我没有发现为什么我的循环是无限的,javascript,while-loop,Javascript,While Loop,var randomNum=Math.round(Math.random()*100); 猜测=提示(“猜测1到100之间的数字”); var得分=0; 而(随机数

var randomNum=Math.round(Math.random()*100);
猜测=提示(“猜测1到100之间的数字”);
var得分=0;
而(随机数<100){
如果(猜测<随机数){
console.log(“过低..继续”)
}else if(猜测>随机数){
console.log(“太高…继续”);
分数++;
}else if(猜测===randomNum){
log(“太好了……没错!!”)
}否则{
log(“游戏结束…你的猜测是对的”+分数+“次数”);
}

}
您没有增加randomNum,因此它将始终保持在一个无限循环中。

您分配的下面代码行
randomNum
只有一次,因此它不会更改

var randomNum = Math.round(Math.random() * 100);
因此,当您尝试创建while循环时,
randomNum
值保持不变


尝试更改while循环中的
randonNum

在代码开始时初始化
randonNum
猜测,但之后再也不会更改它们的值。因此,一旦进入
while
循环,条件开始为false,那么
while
循环中就没有任何东西可以改变比较条件的结果。因此,条件总是错误的,并且最终会导致无限循环。您的循环结构可以归结为:

while (randomNum < 100) {
    // randomNum never changes
    // there is no code to ever break or return out of the loop
    // so loop is infinite and goes on forever
}

我认为这就是你试图实现的目标。重试x次

var randomNum=Math.round(Math.random()*100);
var猜测;
var得分=0;
var=0
而(tries++<3){//如果少于3次尝试,则循环,并递增
猜测=提示(“猜测1到100之间的数字”);
如果(猜测<随机数){
console.log(“过低..继续”)
}else if(猜测>随机数){
console.log(“太高…继续”);
}否则{
//不是低,不是高,一定是对的
分数++;
log(“太好了……没错!!”;
randomNum=Math.round(Math.random()*100);
}
}

log(“游戏结束…你的猜测是对的”+分数+“次数”)
randomNum
猜测只分配了一个值:这用于唯一的循环终止条件。(当猜测到正确的数字时,循环可能会“结束”;是否缺少
中断
?是否应再次读入
猜测
while(randomNum<100)
——该条件始终为真,因此循环将继续运行。您需要在while循环中生成一个新的
randomNum
)@ᴉʞuǝ-我只是把代码放在一个文件夹中。对于堆栈溢出中出现的糟糕或完全未格式化代码的次数,我不打算每次都手动更正格式,并尝试辨别原始编码样式的意图。就我而言,如果您在这里发布格式不好的代码,我们有权以任何对我们最有利的方式使其易读。如果OP想要更改格式或其他任何内容,他们可以自由更改。至少现在它是可读的@ᴉʞuǝ-显然,我们应该保留原始代码的功能。关键是要让它可读。我是否无意中更改了原始代码的功能?OP有任何反对意见吗?这个问题的解决方案是否因为我所做的澄清性编辑而有所改变?我宁愿进行实际的讨论,而不是概念性的讨论。我试图帮助那些发帖格式不好的问题的新手。我的另一个选择是停止帮助新手,直接投票表决他们的问题,继续前进。相反,我选择帮助。@Ajakz-这是否为你的问题提供了答案?因为您在这里看起来是新来的,所以您可以通过单击您认为最佳答案左侧的绿色复选标记向社区表明这一点。这也将为您在这里遵循正确的程序赢得一些声誉积分。
var randomNum = Math.round(Math.random() * 100);
var guess;
var score = 0;
while ((guess = prompt("guess a number between 1 and 100")) !== null) {
    // convert typed string into a number
    guess = +guess;
    if (guess < randomNum) {
        console.log(" too low.. continue")
    } else if (guess > randomNum) {
        console.log("too high ... continue ");
        score++;
    } else if (guess === randomNum) {
        console.log("great ... that is correct!!")
        console.log("score was: " + score);
        // when we match, stop the while loop
        break;
    }
}