美文网首页
关于do...while(0) 中使用continue的问题

关于do...while(0) 中使用continue的问题

作者: github_lincy | 来源:发表于2019-02-23 14:28 被阅读0次

    上代码

    int main(void)
    {
            int a = 3;
            
            while (a > 0) {
                   do {
                         a--;
                         continue;
                         printf("test continue\n");
                    } while (0)
                    printf("test loop\n");
            }
            printf("test over");
            return 0;
    }
    
         上述代码很简单, 那么请问执行后的结果是什么?
         自己动手验哈。。。
    

    So, 是不是很简单,但编码一不小心也是容易犯错的

    要点,切记

    continue只是结束本次循环
    do...while(0)虽然单次循环,也是while的特殊用法,continue在while语句中的作用就是结束本次循环。因此,上述代码中执行到continue时,结束do...while(0),即结束本次循环,在do...while(0)外层继续往下执行。

    答案解释

    按照上述解释,代码运行结果是:
    1. 执行到do...while(0) 的continue时,结束本次循环。因此,在do...while(0)中的continue后面的不会再执行;
    2. 结束do...while(0),往下继续执行printf("test loop\n")。while语句中执行了3遍相同的逻辑。
    

    相关文章

      网友评论

          本文标题:关于do...while(0) 中使用continue的问题

          本文链接:https://www.haomeiwen.com/subject/ekcpyqtx.html