如何在C/C ++中使用break语句
在本文中,我们将研究如何在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