C 中断if语句,但不中断for循环

C 中断if语句,但不中断for循环,c,C,如何使这段代码只中断内部if语句,而不停止for循环 #include <stdio.h> int main() { int i,j; for(i=0;i<10;i++) { if((i==2 || i==8 || i==4)) { printf("\ni is %d\n",i); if(i==4) { print

如何使这段代码只中断内部if语句,而不停止for循环

#include <stdio.h>

int main()
{
    int i,j;

    for(i=0;i<10;i++)
    {
        if((i==2 || i==8 || i==4))
        {
            printf("\ni is %d\n",i);

            if(i==4)
            {
                printf("\ni is %d\n",i);
                break;
            }
            else
            {
                printf("\ni is not 4\n");
            }
        }
        else
        {
            printf("\nnext\n");
        }
        printf("\ngoes out of innner if\n");
    }
    return 0;
}
#包括
int main()
{
int i,j;

对于(i=0;i我认为continue语句可能就是您要寻找的东西


还要注意if()不是循环。

if
语句不是循环;您不会“中断”它们。当您在
if
语句中使用
break
时,它将中断直接包围它的循环(在本例中为for循环)在
if
块中,
break
不会受到任何不同的处理


如果
块在到达它们内部的代码末尾时停止执行,或者直到它们碰到可能导致它们停止执行的东西(例如
返回
)。

我认为这会让人困惑,但您可以使用只执行一次的循环:

do {
    /* ... */
    if(i==4)
    {
        printf("\ni is %d\n",i);
        break;
    }
    /* ... */
} while(0);

你没有内部循环。
if
语句不是循环。看看这段代码,告诉我它的格式正确。你不需要中断if循环。你希望控制流在
break
之后到哪里去?我建议用
goto
语句代替break;-)此处不需要continue,因为在if之后不做任何操作。这里有printf(“\n超出Inner if\n”);台词:我很高兴你添加了这个笑脸,因为我当然知道,但我认为提到它会很愚蠢和迂腐。我担心那些对评论投赞成票的人。很好的解释,+1。有时候这是一个有用的结构,比没有它所需要的意大利面代码或无关的标志更清晰。