JS:当设置超时时,do-while 循环无限循环函数

问题描述 投票:0回答:1

我需要一个提示窗口让用户输入数字。 当设置函数(下面的代码)一次时,一切正常,但是这个提示窗口应该一直累加,直到带有整数(从 200 开始)的变量达到 0,所以我认为 do while 循环可以解决这个问题。
但是,当设置 do while 循环时,输入数字后会立即显示提示窗口,并且不会更改任何内容。
我还更改了代码,直到循环无限并且我的浏览器崩溃。 我知道 do while 循环中的条件始终为 true (

machineFuel > 0 && height > 0
),因为变量
machineFuel and height
大于 0,但我不知道如何正确设置它。

这里是相关代码(缩写)


var machineFuel = 200;
var height = 500;


setTimeout(round, 2000);

function round() {
    do {
       playerInput = input();
    } while (machineFuel > 0 && height > 0);
    calculate();
}

function input(fuel) {
    fuel = parseInt(prompt("Fuel", "A number from 0-200"));
    return fuel;
}

function calculate() {
    machineFuel = machineFuel - playerInput;
}


javascript loops infinite-loop do-while prompt
1个回答
0
投票

calculate
移到
input()
之后,否则您的
machineFuel
将不会更新并且
while
将永远运行:

var machineFuel = 200;
var height = 500;


setTimeout(round, 2000);

function round() {
    do {
       playerInput = input();
       calculate();
    } while (machineFuel > 0 && height > 0);
}

function input(fuel) {
    fuel = parseInt(prompt("Fuel", "A number from 0-200"));
    return fuel;
}

function calculate() {
    machineFuel = machineFuel - playerInput;
}

© www.soinside.com 2019 - 2024. All rights reserved.