JavaScript node.js在这种情况下如何避免While(true)?

mzaanser  于 2023-11-15  发布在  Java
关注(0)|答案(4)|浏览(116)

我读到过使用'while(true)'是一个大禁忌,建议使用'while(condition)'或'do... while(condition)'(1)。你能告诉我如何在这里做到这一点吗?

while (true){
get some data;
if(condition based on data above), do something;
else(break);
} //repeat until break reached

字符串
我可以使用“do. while”(见下文),但这会重复“if”条件,因此这似乎不是最佳选择-

do{
get some data; //must happen first to get info to create condition
if(condition based on data above), do something;
} while(condition based on data above);

rhfm7lfc

rhfm7lfc1#

它可以更简单,比如:

var x = 0;
console.log("Entering loop");
while(true){
    // always make sure to update something in your condition
    // so you dont fall into an infinite loop
    x++;
    console.log(x); // mostly demostrative
    if(x===3) break; // condition to determine when should the loop stop
}
console.log("Out of the loop");

字符串

sf6xfgos

sf6xfgos2#

使用while(true)是没有问题的。你读到的禁忌是因为它是一个潜在的问题,可能会导致无限循环。
所以如果是这种情况,你可以使用一个计数器来打破循环,如果没有发生任何事情,直到那。例如,max_attempt = 100。

os8fio9y

os8fio9y3#

为什么不做:

for(get some data; condition based on data above; get some data;) {
    do something;
}

字符串
例如:

for(var i = Math.random(); i < .8; i = Math.random()) {
    console.log(i);
}

8yoxcaq7

8yoxcaq74#

我会用这样的东西:

while (condition based on data above){
    get some data;
    do_something;
}

字符串
范例:

while (variable_boolean == false && variable_num <= 10){
     variable_2 = variable_num * 5;
}

相关问题