Java流程控制之(四)中断
2024-08-26 03:31:13
在程序设计时,循环直接的跳转显得十分重要,虽然Java没有提供goto语句去控制程序的跳转,但为了控制循环,Java提供了continue,break,以及特殊的标签来实现特定的中断及跳转,当然还有return,这个相对不同一些。本篇将会做出总结。
break
在循环时,如果不想等到false就终止循环的话,可以使用break来完成。
例如以下这个简单的例子:
for (int i = 0;i<10 ;i++ ) {
System.out.println(i);
if(i==1) break;
}
System.out.println("跳出循环");//输出 0 1 跳出循环
可以直到,如果没有if(i==1) break;
这个语句,这个循环将会依次输出0-9的数字,但是加上这句之后,如果执行到i等于1时,执行break语句,将直接跳出循环。
continue
continue有点像是放弃一部分,再从头开始。
依旧给出例子:
for (int i = 0;i<10 ;i++ )
{
if(i%2==0) continue;
System.out.println(i);
}
System.out.println("跳出循环");
//输出1 3 5 7 9 跳出循环
- continue用于忽略本次循环剩下的语句,接着下一次循环,但是不会像break一样直接终止循环。
- 上面的例子,只要时偶数就跳过后面的输出环节,后面也就都是输出奇数啦。
return
其实return并不是专门用于结束循环的关键字,而是用来结束一个方法。
for (int i = 0;i<10 ;i++ ) {
System.out.println(i);
if(i==1) return;
}
System.out.println("跳出循环");//输出 0 1
- 可以看出,将第一个break语句的例子改成return,后面的“跳出循环”并不会被输出,也就是说return结束了整个程序。
- 虽然return也可以结束一个循环,但是与前两个不同,他结束了整个方法,不管return藏在多少层嵌套循环里面。
- return与break和continue不同的地方有很多,return后面可以跟一个值,并将值返回。
标签
Java中没有goto但是,continue和break两个本属于中断语句的关键字,配合上“标签”之后,有了和goto类似实现跳转的机制,能够轻易控制多层的循环嵌套。
break和continue配合标签类似,但也有差别。
标签需要放在循环语句之前,否则有啥意义吖,具体形式如:label:
- break+标签
outer:
for (int i = 0;i<5 ;i++ ) {
for (int j = 0;j<3 ;j++ ) {
System.out.print(" i="+i+" j="+j);
if(j==1)
{
break outer;
}
System.out.println();
}
}
//输出
i=0 j=0
i=0 j=1
当j==1时,遇到break outer语句,导致结束outer标签指定的循环,不是结束break所在的循环!不是结束break所在的循环!!!!
- continue+标签
outer:
for (int i = 0;i<5 ;i++ ) {
for (int j = 0;j<3 ;j++ ) {
System.out.print(" i="+i+" j="+j);
if(j==1)
{
continue outer;
}
System.out.println();
}
}
//输出
i=0 j=0
i=0 j=1 i=1 j=0
i=1 j=1 i=2 j=0
i=2 j=1 i=3 j=0
i=3 j=1 i=4 j=0
i=4 j=1
j的值永远都不会超过1,因为每当j=1,遇到continue outer语句就结束了outer标签控制循环的当此循环,直接开始下一次循环,这时候i从i+1开始,j又将从0开始。
最新文章
- 关于CSS inline-block、BFC以及外边距合并的几个小问题
- 增量式PID简单翻板角度控制
- 使用fiddler2抓取手机发出的请求信息
- 在Toast里面显示图片
- 【转载】gcc和g++的区别
- 按钮控件Button
- 查询Python版本
- Failed to create Accelerated Display. Please check the display hardware and drivers meet the minimum requirements.
- 北京动点飞扬软件招募【Android全职工程师】
- cdqz2017-test10-加帕里图书馆(区间DP &; 简单容斥)
- 原生js实现放大镜
- Linux安装jsvc,及Linux服务开发
- VB网络编程中Winsock的使用
- OpenCV特征检测教程
- 分享一个上传图片,图片压缩Unsupported Image Type解决方案
- 值类型 struct
- 《Algorithm算法》笔记:元素排序(2)——希尔排序
- Jquery使两个Div的滚动条同步滚动
- jQuery实现鼠标悬停显示提示信息窗口的方法
- MR案例:WordCount改写