在C语言中continue语句用于在循环体中结束当前循环,直接进行下一次循环。
比如while循环体一般是这样:
1 | while(i<10) |
当我们要写continue语句时,还要在前面额外加上一句++i
,比如:
1 | while(i<10) |
如果不加这一句,直接continue,那么最后一句++i就不会被执行,循环就会出错。
所以我”机智“地类比,把这个用法也推广到了for循环中……
时至今日,才发现了这个坑……
1 |
|
1 |
|
看起来作用一样,然而这两个程序运行结果却并不一致。
第一个程序,很容易就看出结果是0 1 2 3 4 6 7 8 9
第二个程序,结果是0 1 2 3 4 7 8 9
为什么会这样呢?
原因就是我一直认为for语句中的这个++i,和while循环最后一行的++i性质是一模一样可以替换的,但是,for语句里的++i实际上是独立于花括号里的循环体之外的。
这样一来,continue前面的++i就是画蛇添足了。
所以for语句里使用continue不要在前面加上++i啦!
除非……你有特殊的癖好,代码风格是这样的:
1 | for(i=0;i<10;) |
所以说代码还是要多敲,像这些C语言教程里没有特地提出(大概?)的坑,还是要自己一步一步地踩出来的……
_(:з」∠)_