while循环不适用于==运算符

时间:2018-08-24 10:51:36

标签: javascript html

有两个不同的代码:


第一个代码是

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript while</h2>

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

<script>
var text = "";
var i = 0;
while (i < 10) {
    text += "<br>num " + i;
    i++;
}
document.getElementById("demo").innerHTML = text;
</script>

</body>
</html>

第二个代码是

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript while</h2>

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

<script>
var text = "";
var i = 0;
while (i == 10) {
    text += "<br>num " + i;
    i++;
}
document.getElementById("demo").innerHTML = text;
</script>

</body>
</html>

第一个代码可以完美运行,但是第二个代码却无法正常工作(不打印任何内容),你们可以吗?

4 个答案:

答案 0 :(得分:0)

第二个代码“失败”,因为i等于0,而不是10。就这么简单。 While循环不会执行一次迭代,因为它无法通过第一个测试i != 10

如果您希望它循环直到并包括 10个,请将其更改为<=,如下所示:

var text = "";
var i = 0;
while (i <= 10) {
    text += "<br>num " + i;
    i++;
}
document.getElementById("demo").innerHTML = text;

编辑:

是的,可以将==用作循环条件,但是通常在尝试增加计数器时不使用它。一个正在使用的示例如下:

var i = 0;
var condition_satisfied = false;
while (condition_satisfied == false) {
    i++;
    if (i >= 10) {
        condition_satisfied = true
    }
}

答案 1 :(得分:0)

第二个代码由于while (i == 10) {而无法运行,它正在测试i是否等于10(强制),这永远是不正确的。

如果将我初始化为10,它将运行但只能运行一次

var text = "";
var i = 10;
while (i == 10) {
  text += "<br>num " + i;
  i++;
}
document.getElementById("demo").innerHTML = text;
<h2>JavaScript while</h2>

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

答案 2 :(得分:0)

您的第一个密码是正确的,它将打印

num 0
num 1
num 2

但是在您的第二秒中,因为变量被设置为“ 0”,所以它永远不会进入循环。

答案 3 :(得分:0)

我想所有人都在说,虽然循环代码仅在条件为true且条件为false且循环终止时才运行,但在第二个代码 i = 0; 中,而循环检查< strong> i(平均0)== 10 完全是错误的,而循环是在第一次结束的。