为什么输出从1而不是3开始?如果i的值变为3,则输出应从3开始

  • 本文关键字:开始 输出 如果 javascript html
  • 更新时间 :
  • 英文 :


这是输出数字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>

我认为您可能会对如何执行循环感到困惑。

  1. 初始化块被执行i = 0;
  2. 检查延续条件i <= 9
  3. 如果(2)是true,则执行For Loop的身体,如果false,请停止循环
  4. 最终表达式块被执行i += 2
  5. goto(2)

因此,当您获得FOR LOOP主体的第一次执行时,i0,因此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

最新更新