了解循环

时间:2013-08-20 03:54:41

标签: loops for-loop

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

如果if语句在达到10时将i设置为0,为什么下面的代码会运行11次(第一个打印行)?它不应该只打印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;
     }
 }

1 个答案:

答案 0 :(得分:3)

在第一个循环中,该行有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语句时,它实际上会跳到INCREMENT部分。