原文: https://beginnersbook.com/2014/01/c-continue-statement/

continue语句用于循环。当在循环内遇到 continue语句时,控制流跳转到循环的开头以进行下一次迭代,跳过当前迭代循环体内语句的执行。

C - continue语句

语法:

  1. continue;

continue语句的流程图

C - `continue`语句 - 图1

示例:for循环中的continue语句

  1. #include <stdio.h>
  2. int main()
  3. {
  4. for (int j=0; j<=8; j++)
  5. {
  6. if (j==4)
  7. {
  8. /* The continue statement is encountered when
  9. * the value of j is equal to 4.
  10. */
  11. continue;
  12. }
  13. /* This print statement would not execute for the
  14. * loop iteration where j ==4 because in that case
  15. * this statement would be skipped.
  16. */
  17. printf("%d ", j);
  18. }
  19. return 0;
  20. }

输出:

  1. 0 1 2 3 5 6 7 8

输出中缺少值 4,为什么?当变量j的值为 4 时,程序遇到一个continue语句,它使控制流跳转到for循环的开头以进行下一次迭代,跳过当前迭代的语句(这就是printfj等于 4 时没有执行的原因)。

示例:在while循环中使用continue

在这个例子中,我们在while循环中使用continue。当使用whiledo-while循环时,需要在continue上方放置一个递增或递减语句,以便在下一次迭代时更改计数器值。例如,如果我们不在if的正文中放置语句,那么counter的值将无限期地保持为 7。

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int counter=10;
  5. while (counter >=0)
  6. {
  7. if (counter==7)
  8. {
  9. counter--;
  10. continue;
  11. }
  12. printf("%d ", counter);
  13. counter--;
  14. }
  15. return 0;
  16. }

输出:

  1. 10 9 8 6 5 4 3 2 1 0

当计数器值为 7 时,将跳过print语句。

do-While循环的continue的另一个例子

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int j=0;
  5. do
  6. {
  7. if (j==7)
  8. {
  9. j++;
  10. continue;
  11. }
  12. printf("%d ", j);
  13. j++;
  14. }while(j<10);
  15. return 0;
  16. }

输出:

  1. 0 1 2 3 4 5 6 8 9