问答详情
源自:4-15 结束语句之continue语句

实例中i=5时,不是应该跳出循环码?为很么还有运球5次

#include<stdio.h>
int main()
{
    int i;
    for(i=1;i<=10;i++)
    {
        printf("运球%d次\n",i);
        if(i==5){
            printf("去接个电话\n");
            continue;
        }
    }
    printf("今天的训练到此结束。");
    return 0;
}

运行结果:

运球1次

运球2次

运球3次

运球4次

运球5次

去接个电话

运球6次

运球7次

运球8次

运球9次

运球10次

今天的训练到此结束

i==5时,显示去接个电话然后不是应该跳出循环再继续吗?为什么还有显示运球5次

提问者:大孟先觉 2017-04-07 10:57

个回答

  • 慕少1559731
    2017-10-10 14:19:20

    printf("运球%d次\n",i);   因为这句话写在if语句前面,每次循环都会打印这句话。

    continue是跳出本次循环,不会执行后面的语句,但是continue前面的语句还是会执行的.

  • 雾嶋云淇
    2017-08-10 21:38:15

    printf("运球%d次\n",i);在if(i==5)前面,它会执行,感觉这里的continue并没有什么作用【因为有没有它都会执行下一次的for循环】,反例,如果for循环是这样的:

     for(i=1;i<=10;i++)

        {

            printf("运球%d次\n",i);

            if(i==5)

           {

                printf("去接个电话\n");

                continue;

            }

            printf(“球进了!\n”)

        }

    那么整体的输出应该是:

    运球一次

    球进了!

    运球两次

    球进了!

    ......

    运球五次

    去接个电话

    运球六次

    球进了!

    运球七次

    球进了!

    ......

    运球十次

    今天的训练到此结束

    不知道你能明白不


  • 奇怪的阿怪
    2017-07-23 23:32:58

    这里的printf("运球%d次")在if的前面,所以不管是哪次循环都会有这段文字;

    而下面if的后面可以看作是在第五次运球新增加的彩蛋,事实上在这里continue没有任何的用处,因为在for循环中continue下面没有任何的运算了,continue是最后一句。而continue的作用是在遇到它时 在此时结束i=5的循环(结束之前的还是要运算),进入i=6的循环也就是说continue是为了跳过在包含continue的最小的for循环中continue后面的语句。

    不知道我这样说清楚了没有

  • 呀飞呀飞呀飞
    2017-04-07 11:46:43

    continue:结束本次循环并进行下一次。

    break:跳出当前循环。

    好好看文档啊少年!!!

  • 慕粉3978467
    2017-04-07 11:31:00

    cuntinue是跳出一层循环 例子中就是i=5时 跳出这一层循环 如果是break 那就运球6次以后的不会输出了