C 语言 - Break 和 Continue

Break

你已经在前面的章节中见过 break 语句了。它被用于“跳出”一个 switch 语句。

break 语句同样可以被用于跳出循环

这个例子会在 i 等于 4 的时候跳出 for 循环

实例

int i;

for (i = 0; i < 10; i++) {
  if (i == 4) {
    break;
  }
  printf("%d\n", i);
}

亲自试一试

Continue

continue 语句用于跳过循环中的一次迭代,如果某个特定的条件被满足了,然后它将继续下一次迭代。

这个例子跳过了值为 4 的情况:

实例

int i;

for (i = 0; i < 10; i++) {
  if (i == 4) {
    continue;
  }
  printf("%d\n", i);
}

亲自试一试

请记住:

  • break = 完全停止循环。
  • continue = 跳过本轮循环,但继续循环。

结合使用 Break 和 Continue

您也可以结合使用 breakcontinue

此例跳过打印 2,并在 4 处停止循环:

实例

int i;

for (i = 0; i < 6; i++) {
  if (i == 2) {
    continue;
  }
  if (i == 4) {
    break;
  }
  printf("%d\n", i);
}

亲自试一试

在 While 循环中的 Break 和 Continue

你同样可以在 while 循环中使用 breakcontinue

Break 实例

int i = 0;

while (i < 10) {
  if (i == 4) {
    break;
  }
  printf("%d\n", i);
  i++;
}

亲自试一试

Continue 实例

int i = 0;

while (i < 10) {
  if (i == 4) {
    i++;
    continue;
  }
  printf("%d\n", i);
  i++;
}

亲自试一试

实际应用示例

假设处理一个数字列表,您想要跳过负数值,但如果找到零则完全停止:

实例

int myNumbers[] = {3, -1, 7, 0, 9};
int length = sizeof(myNumbers) / sizeof(myNumbers[0]);
int i;

for (i = 0; i < length; i++) {
  if (myNumbers[i] < 0) {
    continue; // 跳过负数
  }
  if (myNumbers[i] == 0) {
    break; // 找到零时停止循环
  }
  printf("%d\n", myNumbers[i]);
}

亲自试一试

注意:如果您不完全理解上面的示例,不用担心。它使用一个数组(int numbers[] = {3, -1, 7, 0, 9};)来存储数字,您将在下一章中学习更多关于数组的知识。