打破了循环

时间:2013-05-15 02:45:25

标签: c loops for-loop break

我应该使用这段代码

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;
}

想出来:它有一个拼写错误

3 个答案:

答案 0 :(得分:2)

内循环块的开头就在第二个{的{​​{1}}之后:

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); } } 只会突破内循环。外环将再次出现。如果你需要打破两个循环,你需要添加某种标志。

注意到你的内循环中有一个拼写错误,实际上是有效的C(逗号运算符)。应该是break

<

答案 1 :(得分:1)

它将在你的第二个块中,所以在print语句之上或之下。考虑到变量的范围,它是唯一能够实现的地方。

答案 2 :(得分:0)

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

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