C break 和 continue

本文中我们介绍了如何在循环中使用 break 语句和 continue 语句来控制跳过某个迭代或跳出循环。

在 C 语言中, break 语句和 continue 语句是用于循环的流程控制指令。 break 语句用于跳出当前循环,continue 语句则跳出循环的当前迭代并进入下一次迭代。

break 语句

break 语句的用途是立即跳出当前循环。它的语法是:

break;

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

break 语句工作原理

break 语句工作原理
break 语句工作原理

示例 1:break 语句

#include <stdio.h>

int main() {
   int i;
   double number, sum = 0.0;

   for (i = 1; i <= 10; ++i) {
      printf("Enter n%d: ", i);
      scanf("%lf", &number);

      // if the user enters a negative number, break the loop
      if (number < 0.0) {
         break;
      }

      sum += number; // sum = sum + number;
   }

   printf("Sum = %.2lf", sum);

   return 0;
}

输出

Enter n1: 2.4
Enter n2: 4.5
Enter n3: 3.4
Enter n4: -3
Sum = 10.30

程序最多计算 10 个数字的总和。如果用户输入负数,则执行 break 语句结束 for 循环。

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

continue 语句

continue 语句跳过循环的当前迭代并继续下一次迭代。它的语法是:

continue;

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

continue 语句工作原理

C 语言中 continue 语句的工作原理
C 语言中 continue 语句的工作原理

示例 2:continue 语句

#include <stdio.h>
int main() {
   int i;
   double number, sum = 0.0;

   for (i = 1; i <= 10; ++i) {
      printf("Enter a n%d: ", i);
      scanf("%lf", &number);

      if (number < 0.0) {
         continue;
      }

      sum += number; // sum = sum + number;
   }

   printf("Sum = %.2lf", sum);

   return 0;
}

输出

Enter n1: 1.1
Enter n2: 2.2
Enter n3: 5.5
Enter n4: 4.4
Enter n5: -3.4
Enter n6: -45.5
Enter n7: 34.5
Enter n8: -4.2
Enter n9: -1000
Enter n10: 12
Sum = 59.70

在这个程序中,用户输入的负数不参与求和运算,只有非负数才参与求和运算。

if (number < 0.0) {
   continue;
}

当用户输入负数时,执行 continue 语句跳过当前循环迭代,进入下一次迭代。