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

关于continue循环上,例程代表性不足

#include <stdio.h>

int main()

{

    int i ;

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

    {

        printf("1111%d\n",i);

        if(     i==5    )    //能被3整除这个条件如何写呢?

        {

            printf("中断\n");

            //continue;             //应该用哪个循环结束语句呢?

        }                  

        

    }

    printf("sum");

    return 0;    

}

以上是我根据例程的模式自己改成的代码,可以看到,无论使用continue还是不使用,其输出一致:

因为例程上的if语句在for循环之内,并且其判定是当i==5,我们尝试模拟一下程序流程就能发现其中问题:当程序走到i==5时首先进行进行for循环中第一个printf显示,再之后进行if语句判定,判定结果为“1”,进入if语句第二个printf,在此之后跳出当前循环也就是“continue”,也就是结束当前循环,进入下一循环,但continue之后并没有其他语句,这就是问题所在。我们尝试把“continue”去掉,可以发现由于continue之后并没有其他语句,所以当if判定、第二个printf完成之后依然是继续下一次循环。个人认为如果要使得continue具有实际意义那么应该是当需要临时中断某一次动作时,或此次循环中的语句单独有某一作用时使用,简单来说就是在continue语句是用来使接下来一次(多次)动作改变或舍去时使用的,大家可以尝试把第一个printf语句放在if判定之后,或在if语句之后加上其他动作来尝试。

以上是本人在学习过程中发现的一些小问题,如果有错误还请大家不吝谈教。。。


提问者:山狐 2019-01-29 21:36

个回答

  • 废寝忘食陈同学
    2019-07-24 13:57:18

    emmmm    continue前面两//是不是变成注释了

  • 慕UI7253451
    2019-04-17 20:16:16

    有道理,我觉得你说的没错起临时舍去的意义,我也是新手哈刚学到这块,希望能有大佬解答解答

  • qq_慕瓜5506141
    2019-01-29 22:52:20

    这是我的看法,不一定对,希望对你有帮助。


  • qq_慕瓜5506141
    2019-01-29 22:51:07

    汉语部分看不懂,但是if不是循环语句for是还有do-while是。能被3整除(i%3==0)