如何在C/C ++中使用break语句

时间:2020-02-23 14:29:53  来源:igfitidea点击:

在本文中,我们将研究如何在C/C ++中使用break语句。

类似于continue语句,我们可以使用break语句来操纵循环控制。

让我们来看一些示例!

在C/C ++中使用break语句

虽然我们可以使用continue语句跳转到循环的下一个迭代,但break语句会跳出循环。

这跳转到下一条指令,继续循环主体,同时保持循环的所有非局部变量的状态。

为了了解其效果,让我们来看一个使用while循环的示例。

在while循环中使用break语句

我们可以使用break来直接退出while循环。

while(cond) {
  if (something)
      break;
  //Main body
}

考虑下面的while循环,该循环迭代直到i> 10。

#include <stdio.h>

int main() {
  int i = 0;
  while (i <= 10) {
      if (i == 5)
          break;
      printf("i = %d\n", i);
  }
  printf("Outside the Loop\n");
  return 0;
}

如果您看到我所做的事情,该程序将继续打印i的值直到10。
但是,如果i == 5,它将直接从循环中退出。

输出描述了正在发生的事情:

i = 0
i = 1
i = 2
i = 3
i = 4
Outside the Loop

希望这可以在while循环中清除有关break的问题。

与while循环类似,我们也可以以几乎完全相同的方式摆脱do-while循环的循环控制。

接下来,我们将使用for循环查看类似的示例。

在for循环中使用break语句

我们也可以使用for循环来复制上面的程序!

#include <stdio.h>

int main() {
  for (int i=0; i<10; i++) {
      if (i == 5)
          break;
      printf("i = %d\n", i);
  }
  printf("Outside the Loop\n");
  return 0;
}

这将具有与以前相同的输出,因为当i == 5时我们会立即脱离。

在switch语句中使用break语句

现在,这与诸如" for"和" while"之类的其他循环语句略有不同。

switch语句是试图将目标值映射到case值的语句。

如果它们匹配,则执行相关的块。
否则,它将继续向下移动,直到该块结束或者遇到"默认"块为止。

如果我们像下面的代码片段一样编写switch语句,可能会在不知不觉中向程序引入错误。

#include <stdio.h>

int main() {
  for (int i=0; i<=2; i++) {
      switch(i) {
          case 2:
          printf("i is equal to 2\n");
          default:
          printf("i is not equal to 2\n");
      }
  }
  return 0;
}

输出

i is not equal to 2
i is not equal to 2
i is equal to 2
i is not equal to 2

即使我介于0到2之间,为什么还要得到最后两行?答案是因为即使'i == 2'也要执行'default'情况。
如果一种情况匹配,switch语句不会停止。

为了避免这种情况,我们必须明确地告诉程序如果匹配任何大小写,则要使其脱离switch语句。

因此,通常的做法是在每个case语句的末尾添加break语句!

#include <stdio.h>

int main() {
  for (int i=0; i<=2; i++) {
      switch(i) {
          case 2:
          printf("i is equal to 2\n");
          break; //Add break condition
          default:
          printf("i is not equal to 2\n");
          break; //Add break condition
      }
  }
  return 0;
}

其中我不需要在"默认"之后使用" break",但这是一个好习惯。

输出

i is not equal to 2
i is not equal to 2
i is equal to 2