用于跳出while、do、for循环
break作用:
1.在一个判断时退出。例如,if(...)..break;
2.在嵌套循环时从最内层的循环退出(只退出一层),例如在while循环内嵌套switch..break语句,break可以从switch语句中转移出来,但不能跳出while循环。
注意:return后面没有break语句,紧跟在return语句后的break永远不会被执行,许多编译器还会因此提示警告消息
非void函数必须使用return语句来指定将要返回的值。
return语句中表达式的类型和函数的返回类型必须匹配,如果没有表达式,return语句可以出现在返回类型为void的函数中
在main函数中终止程序的两种方法——return语句和exit函数
头文件:#include
传递给exit函数的实际参数和main函数的返回值具有相同的含义:两者都说明了程序终止时的状态。
正常终止:exit(0); 因为0有点模糊,所以C语言允许用EXIT_SUCCESS来代替(效果是相同的)exit(EXIT_SUCCESS);
表示异常终止:exit(EXIT_FAILURE);
EXIT_SUCCESS和EXIT_FAILURE都是定义在
return语句和exit函数之间的差异是:不管哪个函数调用exit函数都会导致程序终止,return语句仅当由main函数调用时才会导致程序终止,一些程序员只使用exit函数,以便更容易定位程序中的全部退出点。
continue无法跳出循环,但它和break类似,break刚好把程序控制转移到循环体末尾之后,而continue刚好把程序控制转移到循环体末尾之前,用break可以跳出循环,而continue可以把程序控制在循环内。break和continue另一个区别是break语句可以用于switch语句和循环for,while、do...而continue只能用于循环。
举例:在如下循环体中,实现了循环在读入10个非零数后循环终止。当n==0时,会跳过sum+=i;和n++的操作,但仍然在循环体while内。
- void main()
- {
- int n=0;
- int sum=0;
- while(n<10)
- {
- scanf("%d",&i);
- if(i==0)
- continue;
- sum+=i;
- n++;
- }
- }
break语句和continue都是跳转语句:他们把控制从程序中一个位置转移到另一个位置。这两者都是受限制的:break语句的目标时包含该语句的循环结束后的那一点代码,而continue语句的目标是循环结束之前的那一点代码。goto语句则可以跳转到函数中任何有标语的语句处。
goto 标识符:执行该语句时,控制会转移到标识符后面的语句上,而且该语句必须和goto语句在同一个函数中。
- goto L;
- L:....