Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 打破';对于';环_C_Loops_For Loop_Break - Fatal编程技术网

C 打破';对于';环

C 打破';对于';环,c,loops,for-loop,break,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); } } 我的课本上说在内部循环块的最开始插入这个break语句。我不知道那在哪里!我已经试过很多地方了,但还是想不出来 以下是我的整个计划: #include <stdio.h> int main() { int i, j; for (i

我应该用这个密码

for (i=1; i<4; i++)
{
    for (j=1; j, 4; j++)
    {
        printf("Running i=%d j=%d\n", i, j);
    }
}
我的课本上说在内部循环块的最开始插入这个
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;
}
#包括
int main()
{
int i,j;

for(i=1;i它将位于第二个for块中,因此在print语句的上方或下方。它是给定变量范围的唯一位置。

内部循环块的开始位于第二个
{
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);
    }
}

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


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

就在
printf
语句之前和
{
之后,还有2个
{
和3个
}
必须匹配。@paddy您刚刚用格式(不匹配的大括号)修复了一个错误:)你确定标题中的C#,巴德?printf和%d在我看来不像C#。哈哈@比尔-我可能是无意中这样做的。最初的问题太混乱和令人讨厌了,我可能只是认为代码是正确的。但是的,我模糊地记得看到了3个右括号。请注意,你的内心状态是
j,4
<代码>用于循环(第3行),您可能打算使用
jyeah,我试过它只是一直循环,它一直循环,因为您的内部循环条件只检查
j
是否为非零。我最好为您解决这个问题。@user2359407:您读过printf语句中的文本了吗?它只会打破内部循环还有另一种打破bot的方法这就是使用匿名方法。将循环放在匿名方法中并返回,而不是中断。它将返回到当前方法并继续。如果这是c#…并且显然是重新命名的,则假设这实际上是c#。但对我来说,它看起来像c。不,我不建议使用
goto
。不要使用goto(所有大写字母强调我的声明):)不确定j,4是否是有效条件,是的,逗号引入了一个序列点,但我想知道编译器如何处理j,4…在ipad上,不能check@Bill:
goto
是在C语言中打破嵌套循环和处理错误的最佳选择。当然,当有更好的选择时,不要使用它,但全面禁止是愚蠢的。
for(i=1;i<4;i++)
{
    for(j=1;j,4;j++)
    {
        // <<<--- They mean here.
        printf("Running i=%d j=%d\n", i, j);
    }
}
   for(j=1;j<4;j++)