break,return和continue的区别
2016-07-28 14:27
323 查看
1、return
语句的作用
(1) return
从当前的方法中退出,返回到该调用的方法的语句处,继续执行。
(2) return
返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致,可以使用强制类型转换来是数据类型一致。
(3) return
当方法说明中用void声明返回类型为空时,应使用这种格式,不返回任何值。
2、break语句的作用
(1)
只能在循环体内和switch语句体内使用break语句。
(2)
当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。
(3)
当break出现在循环体中,但并不在switch语句体内时,则在执行break后,跳出本层循环体。
(4)
在循环结构中,应用break语句使流程跳出本层循环体,从而提前结束本层循环。
3、continue语句作用
(1) continue语句的一般形式为:contonue;
(2)
其作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定。
(3)
注意:执行continue语句并没有使整个循环终止。在while和do-while循环中,continue语句使得流程直接跳到循环控制条件的测试部分
,然后决定循环是否继续进行。
(4)
在for
循环中,遇到continue后,跳过循环体中余下的语句,而去对for语句中的“表达式3”求值,然后进行“表达式2”的条件测试,最后根据“表达式2”的值来决定for循环是否执行。在循环体内,不论continue是作为何种语句中的语句成分,都将按上述功能执行,这点与break有所不同。
例如,
语句的作用
(1) return
从当前的方法中退出,返回到该调用的方法的语句处,继续执行。
(2) return
返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致,可以使用强制类型转换来是数据类型一致。
(3) return
当方法说明中用void声明返回类型为空时,应使用这种格式,不返回任何值。
2、break语句的作用
(1)
只能在循环体内和switch语句体内使用break语句。
(2)
当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。
(3)
当break出现在循环体中,但并不在switch语句体内时,则在执行break后,跳出本层循环体。
(4)
在循环结构中,应用break语句使流程跳出本层循环体,从而提前结束本层循环。
3、continue语句作用
(1) continue语句的一般形式为:contonue;
(2)
其作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定。
(3)
注意:执行continue语句并没有使整个循环终止。在while和do-while循环中,continue语句使得流程直接跳到循环控制条件的测试部分
,然后决定循环是否继续进行。
(4)
在for
循环中,遇到continue后,跳过循环体中余下的语句,而去对for语句中的“表达式3”求值,然后进行“表达式2”的条件测试,最后根据“表达式2”的值来决定for循环是否执行。在循环体内,不论continue是作为何种语句中的语句成分,都将按上述功能执行,这点与break有所不同。
例如,
双重for循环里用了break语句,跳出循环的话是跳出最里面的。
int a=0; for(int i=0;i<=9;i++) { for(int j=0;j<=9;j++) { break; a++; } a++; printf("%d",a); } //输出为10,而不是0。无论有几重循环,break永远只跳出自己所在的那一层循环。再如,
void main() { int n,m; for(n=1;n<=15;n++)//这个循环输出1,2,3,4.在n是5的时候循环退出 { if(n==5) break; printf("%d",n); } printf("\n"); //本次循环输出1,2,3,4,6,7,8,9,10 for(m=1;m<=10;m++) { if(m==5) continue;//在n=5时,没有执行当次循环的其他语句,所以5未输出 printf("%d",m); } }
相关文章推荐
- AFNetWorking请求时, “Request failed: unacceptable content-type: text/html”
- UIWindow&UIWindowLevel
- KendoUI学习笔记(类图)
- Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag
- LeetCode-Wiggle Subsequence
- Android酷炫实用的开源框架(UI框架)
- 题号未知 , Array Queries 【RMQ】
- StringBuffer和StringBuilder
- Vue新手向 知乎日报 by Vue.js
- Android UI系列-----ImageView的scaleType属性
- QT Creator 使用 design 修改 ui界面编译后界面未更新问题的解决 From EricQu
- SPOJ 375 Query on a tree(树链剖分)
- 外观数列(Look-and-say sequence)
- BlockingQueue
- 安装GRID时跑root.sh脚本报错(ORA-27091: unable to queue I/O)
- HDUOJ 1216 - Assistance Required
- STL 之 priority_queue
- sql deque
- Hibernate中的Query cache(查询缓存)
- padding margin;gravity,layout_gravity