loops - 了解 For 循环

标签 loops for-loop

我正在尝试一个for循环。我添加了一个 if 语句,以便在循环达到 30 时停止循环。 我看到了i <= 10将运行 11 次,因为循环在达到 10 次时仍会运行。

如果有一个设置 i 的 if 语句,为什么下面的代码会运行 11 次(第一行打印)当达到10时又回到0?难道它不应该只打印 10 个星号而不是 11 - 因为它永远不会到达第 11 个循环吗?另外,第二个ifi返回到 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/

相关文章:

r - 如何使用 r 中的 if 条件基于其他列创建新列

loops - 操作 Lua 表时遇到问题

c - 我怎样才能在C中继续这个循环

c++ - 我怎样才能重置我的程序? (不使用 goto)

java - 倒计时金字塔错误

r - R 中的迭代,for 循环的奇怪结果

arrays - 试图理解循环

python - 如何在循环中将字符串相互添加?

检查用户是否输入了 int - C

Javascript 遍历变量