0) { text += "The n-6ren">
gpt4 book ai didi

javascript - 如何处理javascript while循环的结束

转载 作者:行者123 更新时间:2023-11-30 06:21:20 26 4
gpt4 key购买 nike

function myFunction() {
var text = "";
var i = 5;
while (i > 0) {
text += "<br>The number is " + i;
i--;
}
text += "<br>The number is " + i;
if(i==0){
i=5;
text += "<br>The number is reset to " + i;
}

while (i > 0) {
text += "<br>The number is " + i;
i--;
}
text += "<br>The number is " + i;
document.getElementById("demo").innerHTML = text;
}
<html>
<body>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>
</body>
</html>

我希望数字递减为 0,然后重置为其原始值并再次递减为零。如果我将它显式设置为 5,则在执行过程中会出现中断(显示重置为 5),我必须添加另一个 while 循环。

是否可以只使用一个 while 循环?还有更好的方案吗?

最佳答案

使用 bool 变量,如 oneIterationCompleted,查看完整迭代是否已完成。当i第一次变为-1时,将其设置为true,并将i重置为5:

function myFunction() {
var oneIterationCompleted = false;
var text = '';
var i = 5;
while (i > -1) {
text += "<br>The number is " + i;
i--;
if (i === -1 && !oneIterationCompleted) {
i = 5;
oneIterationCompleted = true;
}
}
document.getElementById("demo").innerHTML = text;
}
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>

另一种选择是在将 i 初始化为 11 时显示 i % 6 而不是 i,不需要额外的测试:

function myFunction() {
let text = '';
for (let i = 11; i > -1; i--) {
text += "<br>The number is " + (i % 6);
}
document.getElementById("demo").innerHTML = text;
}
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>

关于javascript - 如何处理javascript while循环的结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52884294/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com