这是输出数字1 3 5 7 9
的循环这里i的值是3,然后输出应从3 ..?
开始
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var text = "";
var i;
for(i = 0; i<=9; i = i + 2 )
{
text = i + 1 +"<br>";
document.getElementById("demo").innerHTML += text;
}
</script>
</body>
</html>
我认为您可能会对如何执行循环感到困惑。
- 初始化块被执行
i = 0;
- 检查延续条件
i <= 9
- 如果(2)是
true
,则执行For Loop的身体,如果false
,请停止循环 - 最终表达式块被执行
i += 2
- goto(2)
因此,当您获得FOR LOOP主体的第一次执行时,i
是0
,因此1
是输出
如果您的给定代码具有值i = 3,则它从4而不是3显示,因为在循环中,您将内容设置为i 1,如果您希望它为3,只需在循环中将其更改为i,这意味着如果它必须显示1,3,5,7,9而不是从0开始,请从1
开始检查此片段
this is FOR LOOP that output the numbers 1 3 5 7 9
here the value of i is 3, then output should start from 3 ..?
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var text = "";
var i=3;
for(i = 3; i<=9; i = i + 2 )
{
text = i +"<br>";
document.getElementById("demo").innerHTML += text;
}
</script>
</body>
</html>
否则您甚至可以考虑以下
var text = "";
var i;
for (i = 3; i <= 9;) {
var content = (i % 2 == 0) ? i + 1 : i;
text = content + "<br>";
if (i % 2 == 0)
i = i + 3;
else
i = i + 2;
document.getElementById("demo").innerHTML += text;
}
<p id="demo"></p>
您的初始化为0,这就是为什么?而是从i = 3 n进行初始化。
for (stmt 1; stmt 2; stmt 3) {
//code to be executed
}
stmt 1在循环(代码块)开始之前执行。
stmt 2定义了运行循环的条件(代码块)。
stmt 3在执行循环(代码块)后每次执行。
因此,i的初始值设置为0,所以它是打印1。
要从3开始获取值,您需要更改i的值,这里是修改的代码。请检查
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var text = "";
var i;
for(i = 2; i<=9; i = i + 2 )
{
text = i + 1 +"<br>";
document.getElementById("demo").innerHTML += text;
}
</script>
</body>
</html>
op:3579