我正在尝试一个for循环。我添加了一个 if 语句,以便在循环达到 30 时停止循环。
我看到了i <= 10
将运行 11 次,因为循环在达到 10 次时仍会运行。
如果有一个设置 i
的 if 语句,为什么下面的代码会运行 11 次(第一行打印)当达到10时又回到0?难道它不应该只打印 10 个星号而不是 11 - 因为它永远不会到达第 11 个循环吗?另外,第二个if
套i
返回到 10,这应该让循环再运行一次,通过第一个 if
,然后设置 i
回到0?
int j = 0;
for (int i = 0; i <= 10; i++)
{
Console.Write("*");
if (i == 10)
{
j++;
Console.WriteLine("");
i = 0;
}
if (j == 30)
{
i = 10;
}
}
最佳答案
在第一个循环中,该行有 11 颗星,因为 i
从 0 迭代到 10,总共 11 次迭代。
每当i
变为值10时,j
就会递增,打印换行符,并且i
变为0
.
但是,当在循环中将 i
设置为 0
时,循环会使 i
从 1 迭代到 10,总共10 次迭代。
这是因为 i
在下一次迭代开始之前递增。
具有以下结构的 for
循环:
for (INIT; CONDITION; INCREMENT) {
BODY
}
或多或少相当于这个while
循环:
INIT
while (CONDITION) {
BODY
INCREMENT
}
需要注意的是,当 BODY 有 continue
语句时,它实际上会跳转到 INCRMENT
部分。
关于loops - 了解 For 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18326700/