-1

我应该使用此代码

for (i=1; i<4; i++)
{
    for (j=1; j, 4; j++)
    {
        printf("Running i=%d j=%d\n", i, j);
    }
}

...使用此代码将其打破循环

if (i==2 && j ==1) {
    printf("Break inner loop when i=%d and j=%d\n", i, j);
    break;
}

我的教科书说要break在内部循环块的最开始插入这个语句。我不知道那是哪里!我已经尝试了很多地方,但仍然无法弄清楚。

这是我的整个程序:

#include <stdio.h>

int main()
{
    int i, j;

    for (i=1; i<4; i++)
    {
        for (j=1; j,4; j++)
            if (i==2 && j ==1) {
                printf("Break inner loop when i=%d and j=%d\n", i, j);
                break;
            }
            printf("Running i=%d j=%d\n", i, j);

        }
    }
    return 0;
}

我想通了:它有一个错字

4

3 回答 3

2

内循环块的开始{就在第二个之后for

for(i=1;i<4;i++)
{
    for(j=1;j,4;j++)
    {
        // <<<--- They mean here.
        printf("Running i=%d j=%d\n", i, j);
    }
}

请注意,这break只会打破内部循环。外循环将再次运行。如果您需要跳出两个循环,则需要添加某种标志。

刚刚注意到您的内部循环中有一个错字,实际上是有效的 C(逗号运算符)。它应该是<

   for(j=1;j<4;j++)
于 2013-05-15T02:52:08.600 回答
1

它将在您的第二个 for 块中,因此位于 print 语句的上方或下方。考虑到变量的范围,这是它唯一可以去的地方。

于 2013-05-15T02:48:04.583 回答
0

当 i == 2 和 j == 1 时,内部循环中的 break 将使您退出内部 for 循环,因此它不会运行该函数printf("Running i=%d j=%d\n", i, j);

它继续循环,因为代码仍然需要运行循环,直到 i 和 j 都小于 4。

于 2013-05-15T04:12:16.863 回答