原文: https://www.programiz.com/c-programming/c-break-continue-statement

我们在之前的教程中了解了循环。 在本教程中,我们将在示例的帮助下学习使用breakcontinue语句。

C break

break语句在遇到循环时将立即结束循环。 其语法为:

  1. break;

break语句几乎总是与循环内的if...else语句一起使用。


break语句如何工作?

C `break`和`continue` - 图1


示例 1:break语句

  1. // Program to calculate the sum of a maximum of 10 numbers
  2. // If a negative number is entered, the loop terminates
  3. # include <stdio.h>
  4. int main()
  5. {
  6. int i;
  7. double number, sum = 0.0;
  8. for(i=1; i <= 10; ++i)
  9. {
  10. printf("Enter a n%d: ",i);
  11. scanf("%lf",&number);
  12. // If the user enters a negative number, the loop ends
  13. if(number < 0.0)
  14. {
  15. break;
  16. }
  17. sum += number; // sum = sum + number;
  18. }
  19. printf("Sum = %.2lf",sum);
  20. return 0;
  21. }

输出

  1. Enter a n1: 2.4
  2. Enter a n2: 4.5
  3. Enter a n3: 3.4
  4. Enter a n4: -3
  5. Sum = 10.30

该程序计算最多 10 个数字的总和。 为什么最多 10 个数字? 这是因为如果用户输入一个负数,则将执行break语句。 这将结束for循环,并显示sum

在 C 中,break也与switch语句一起使用。 这将在下一个教程中讨论。


C continue

continue语句跳过循环的当前迭代,并继续下一个迭代。 其语法为:

  1. continue;

continue语句几乎总是与if...else语句一起使用。


continue语句如何工作?

C `break`和`continue` - 图2


示例 2:continue语句

  1. // Program to calculate the sum of a maximum of 10 numbers
  2. // Negative numbers are skipped from the calculation
  3. # include <stdio.h>
  4. int main()
  5. {
  6. int i;
  7. double number, sum = 0.0;
  8. for(i=1; i <= 10; ++i)
  9. {
  10. printf("Enter a n%d: ",i);
  11. scanf("%lf",&number);
  12. if(number < 0.0)
  13. {
  14. continue;
  15. }
  16. sum += number; // sum = sum + number;
  17. }
  18. printf("Sum = %.2lf",sum);
  19. return 0;
  20. }

输出

  1. Enter a n1: 1.1
  2. Enter a n2: 2.2
  3. Enter a n3: 5.5
  4. Enter a n4: 4.4
  5. Enter a n5: -3.4
  6. Enter a n6: -45.5
  7. Enter a n7: 34.5
  8. Enter a n8: -4.2
  9. Enter a n9: -1000
  10. Enter a n10: 12
  11. Sum = 59.70

在此程序中,当用户输入正数时,将使用sum += number;语句计算总和。

当用户输入一个负数时,将执行continue语句,并从计算中跳过该负数。