打破if语句而不是for-loop

时间:2013-10-07 23:32:46

标签: c

如何才能使这段代码脱离内部if语句而不是停止for-loop?

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

此循环在i=4处爆发。有没有办法在i-4突破并继续for for循环直到i<10

3 个答案:

答案 0 :(得分:3)

我认为继续陈述可能是您正在寻找的东西。

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

答案 1 :(得分:2)

if语句不是循环;你不要“爆发”它们。在break语句中使用if时,它将突破直接包围它的循环(在本例中为for循环)。 break块内的if未被区别对待。

if块在到达其中的代码末尾时停止执行,或直到它们遇到会导致它们无论如何都停止执行的内容(例如return)。

答案 2 :(得分:1)

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

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