-3

我怎样才能让这段代码只跳出内部 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;
}

这个循环在i=4. 有什么办法可以突破i-4并继续for循环直到i<10

4

3 回答 3

3

我认为 continue 语句可能是您正在寻找的东西。

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

于 2013-10-07T23:37:51.727 回答
2

if语句不是循环;您不会“摆脱”它们。当您在语句break内部使用时if,它将跳出直接包含它的循环(在本例中为 for 循环)。在块break内没有任何不同的处理。if

if块在到达它们内部代码的末尾时停止执行,或者直到它们遇到会导致它们停止执行的东西(例如return)。

于 2013-10-07T23:38:29.297 回答
1

我认为这会很混乱,但是您可以使用一个只会执行一次的循环:

do {
    /* ... */
    if(i==4)
    {
        printf("\ni is %d\n",i);
        break;
    }
    /* ... */
} while(0);
于 2013-10-08T06:02:05.630 回答