主页> seo培训> 【北京网『站优化】Java break语句:跳出循环
某些时候需要在某种条件出现时强行终止循环,而不是等到循环条件为 false 时才退出循环。此时,可以使用 break 来完成这个功能。
break 用于完全结束一个循环,跳●出循环体。不管是哪█种循环,一旦在循环体中遇到 break,系统将完全结束该循环,开始执行循环之后的代码。
在 Java 中,break 语句有 3 种作用,分别是:在 switch 语句中终止一个语句序列、使用 break 语句直接强行退出循环和使用 break 语句实现 goto 的功能。
使用 break 语句直接强行退出循环(break 不带标签)
可以使用 break 语句强行▼退出循环,忽略循环体中的任何其他语句和循环的条件判断。在循环中遇〓到 break 语句时,循环被≡终止,在循环后面的语句重新开始。
例 1
小明参加了一个 1000 米的长跑比赛,在 100 米的跑道上,他循环地跑着,每跑一圈,剩余路程ξ 就会减少 100 米,要跑←的圈数就是循环的次数。但是,在每跑完一圈时,教练会问他是否要坚持下去,如果回答 y,则继续跑,否则表示放弃。
使用 break 语句直接强行退出循环的示例如下:
public static void main(String[] args) {
Scanner input = new Scanner(System.in); // 定义变量存储小明的回答
String answer = ""; // 一圈100米,1000米为10圈,即为循环的次数
for (int i = 0; i < 10; i++) {
System.out.println("跑的是第" + (i + 1) + "圈");
System.out.println("还能坚持吗?"); // 获◣取小明的回答
answer = input.next(); // 判断小明的回答是否为y?如果不是,则放弃,跳出循环
if (!answer.equals("y")) {
System.out.println("放弃");
break;
}
// 循环之后的代码
System.out.println("加油!继续!");
}
}
该程序运行后◇的效果如下所示:
跑的是第1圈
还能坚持吗?
y
加油!继续!
跑的是第2圈
还能坚持吗?
y
加油!继续!
跑的是第3圈
还能坚持吗?
n
放弃
尽管 for 循环被设计为从 0 执行到 10,但是当小明的回答不是 y 时,break 语句终止了程序的循环,继续执行循环体外的代码,输出“加油!继续!”。
break 语句能用于╳任何 Java 循环中,包括人们有意设置的无限循环。在一系列嵌套循环中使用 break 语句时,它将仅仅终止最里面的循环。例如:
public static void main(String[] args) {
// 外循环,循环5次
for (int i = 0; i < 5; i++) {
System.out.print("第" + (i + 1) + "次循环:");
// 内循环,设计为循环10次
for (int j = 0; j < 10; j++) {
// 判断j是否等于3,如果是,则终止循环
if (j == 3) {
break;
}
System.out.print("内循★环的第" + (j + 1) + "次循环\t");
}
System.out.println();
}
}
该程序运行结果如下所示:
第1次循环:内循√环的第1次循环 内循环的▅第2次循环 内循环的第3次循环
第2次循环:内循环的第1次循环 内循环的第2次循环 内循环的第3次循环
第3次循环:内循环的第1次循环 内循环的第2次循环 内循环的第3次循环
第4次循环:内循环的第1次循环 内循环的第2次循环 内循环的第3次循环
第5次循环:内循环的第1次循环 内循环的第2次循环 内循环的第3次循环
从程序运行结果来看,在内部循环中的 break 语句仅仅终止了所在的内部循环,外部循环没有受到任何的影响■。
注意:一个循环中可以有一个以上的 break 语句,但是过多的 break 语句会破坏代∞码结构。switch 循环语句中的 break 仅影响 switch 语句,不会影响循环。
例 2
编写一个 Java 程序,允许用户输入 6 门课程成绩,如果录入的成绩为负则跳出循环;如果录入 6 门合法成绩,则计算→已有成绩之和。
使用 break 语句的实现代码如下㊣:
public static void main(String[] args) {
int score; // 每门课的成绩
int sum = 0; // 成绩之和
boolean con = true; // 记录录入的成绩是否合法
Scanner input = new Scanner(System.in);
System.out.println("请输入学生的姓名:");
String name = input.next(); // 获取用户输入的姓名
for (int i = 1; i <= 6; i++) {
System.out.println("请输入第" + i + "门课程的⊙成绩:");
score = input.nextInt();// 获取用户输入的成绩
if (score < 0) { // 判断用户输入的成绩是否为负数,如果为△负数,终止循环
con = false;
break;
}
sum = sum + score; // 累加求和
}
if (con) {
System.out.println(name + "的总成绩为:" + sum);
} else {
System.out.println("抱歉,分数Ψ录入错误,请重新录入!");
}
}
运行程序,当用户录入的分数低于 0 时,则输出“抱歉,分数录入错误,请重新录入!”信息,否则打印学生的总成绩。输出结果如下所示。
请输入学生的姓名:
zhangpu
请输入第1门课@程的成绩:
100
请输入第2门课程的成︽绩:
75
请输入第3门课程的成绩:
-8
抱歉,分数录入错误,请重新录入!
请输入学生的姓名:
zhangpu
请输入第1门课程的成绩:
100
请输入第2门课程的成绩:
68
请输入第3门课程的成绩:
73
请输入第4门课程的成绩:
47
请输入第5门课程的成绩:
99
请输入第6门课程的成绩:
84
zhangpu的总成绩为:471
在该程序中,当录入第 3 门课的成绩时,录入的成绩为负数,判断条件“score<0”为 true,执行“con=false”,用 con 来标记录入是否有误。接着执行 break 语句,执行完之后程序并没有继续执行条件语句后面的语句,而是ξ 直接退出 for 循环。之后执行下面的条件判断语句,判断 boolean 变量的 con 是否为 true,如果为 true,则打印总成绩;否则打印“抱歉,分数录入错误,请重新录入!”。
使用 break 语句实现 goto 的功能(break 带标签)
有时候,在嵌套很深的循环语句中会发生一些不可预料的事情。此时可↓能更加希望跳到嵌套的所有循环语句之◣外。通过添加一些额外的条件判断实现各层循ω环的检测很不方便。
幸运的是,Java 与 C++ 不同,Java 提供了一种带标签的 break 语句,用于跳出多重嵌套的循环语句。
break 语句可以实现 goto 的功能,并且 Java 定义了 break 语句的一种扩展形式来处理退出嵌套很深的循环这个问题。
通过使用扩展的 break 语句,可以终止执行一个或者几个任意代码块,这些代码块不必是一个循环或一个 switch 语句的一↘部分。同时这种扩展的 break 语句带有标签,可以明确指定从何处重新开始执行。
break 除了具有 goto 退出深层循环嵌套作用外,还保留了一些程序结构化的特性。
标签 break 语句的通用格式如下:
break label;
label 是标识代码块的卐标签。当执行这》种形式的 break 语句时,控制权被传递出指定的代码块。被加标签的代码块必须包围 break 语句,但是它不需要直接包围 break 的块。也就是说,可以使用一个加标签的 break 语句来退出一系列的嵌套块,但是不能使用 break 语句№将控制权传递到不包含 break 语句的代码块。
用标签(label)可以指定一个代码块,标签可以是任↑何合法有效的 Java 标识符,后跟▃一个冒号。加上标签的代码块可以作为 break 语句的对象,使程序在加标签的块的结尾继续执行。
下面是使用带标签的break 语句的示例。
public class GotoDemo {
public static void main(String[] args) {
label: for (int i = 0; i < 10; i++) {
for (int j = 0; j < 8; j++) {
System.out.println(j);
if (j % 2 != 0) {
break label;
}
}
}
}
}
以上程序的执行结果为:
0
1
这里的 label 是ξ标签的名称,可以为 Java 语言中任意合法的标识符。标签语句必须和循环匹配使用,使用时书写在对应的循环语句的上面,标签语句以冒号结束。如果需要中断标签语句对应的循环,可以采用 break 后面跟标签名的方式。
如在上面代码中,当 j 为 1 时,“j%2!=0”条件表达式♀成立,则 label 标签所代表的最外层循环终止。
注意:通常紧跟 break 之后的标签,必须在 break 所在循环的外层循环之前定ζ 义才有意义。
在 switch 语句中终止一个语句序列
在 switch 语句中终止一个语句序列,就是在每个 case 子句块的最后添加语句“break;”,这个功能在《Java switch case》已经讲过,这里不在讲述。
- 2019-07-15 【北京seo网】金山区seo排名优化外
- 2021-04-27 【北京seo营销】SEO工〓具百度点击器
- 2020-09-15 【seo营销】【热门】SEO运营师分析
- 2020-12-13 【北京seo营销】TBSEO专注投资者教
- 2021-12-29 【北京seo营销】seo优化是怎么做的
- 2020-06-27 【搜索引擎优化】抖音“买买买”
- 2020-11-04 【北京seo营销】福州javaEE入门班哪
- 2020-09-20 【北京网站□ 优化】TOP前五:北京百
- 2019-06-13 网站备案的流程是什么?
- 2020-07-24 【seo营销】网站seo优化应该注意的
- 2020-06-26 【seo是什么】“基层肿瘤中心建设
- 2020-10-25 【怎么做seo】新消息!南京seo个人
- 2020-08-22 【seo工具】今年优选:河北seo报价
- 2020-08-28 【北京seo营销】科普:石家庄网站
- 2020-10-26 【怎么做seo】vivo秦飞:vivo已启动
- 2020-06-10 【北京seo网】新航季南航新开贵阳
- 2020-09-29 【北京seo实战】Ingenio卫星即将开
- 2021-07-26 【seo教程】BitTorrent下载 v7.10.5.4
- 2020-07-31 【seo是什么】2020“走进灞桥”西
- 2019-05-22 制作移动网站需要具备的基本常识
- 2019-10-06 【seo工具】「seo营销」你知道网站
- 2019-05-16 SEO思维培训之搜索首页霸屏技术是
- 2022-01-12 【北京seo平台】苏州seo搜索引擎优
- 2020-09-19 【北京↙网站优化】B2B优选:青岛网
- 2020-09-17 【北京seo】看这里!宁波新闻源平
- 2019-10-22 【搜索引擎优化】讲实话,支付宝
- 2019-10-16 【seo教程】中小企业开展网络营销
- 2021-05-26 【北京seo教程】江门SEO优化定制
- 2022-02-11 【北京seo营销】百度seo公司深究百
- 2020-06-14 【seo营销】黑龙江百度快照优化企
- 2019-05-13 网络优化公司有哪些标准?
- 2019-05-28 网站建▂设不同周期之间有何关联
- 2019-06-04 五种中小型企业不容错过的网络营
- 2019-06-05 seo写作 快速提权seo技术写作自动
- 2019-06-19 【seo技巧】如何有效解决网站排名
- 2019-06-26 【北京seo实战】_自流井区人民法
- 2019-06-29 【北京seo网】_经开区城南街道开
- 2019-09-30 【seo优化】滨海新区一英语培训学
- 2019-10-14 【怎么做seo】「常德网站优化」
- 2019-10-15 【北京seo教程】「湘潭网站seo」让
- 2019-10-18 【北京seo】以前在阿里南通渠道商
- 2019-10-19 【北京seo实战】腾讯微博怎么拉黑
- 2019-10-22 【搜索引擎优化】讲实话,支付宝
- 2019-10-26 【北京▲网站优化】今天和大家一起
- 2020-05-13 【北京seo实战】福州SEO培训(搜索
- 2020-05-13 【怎么做seo】北京网站优化SEO培训
- 2020-06-06 【北京seo】宝山区网站关键词优化
- 2020-06-08 【北京seo网】付昊桓:超算软件研
- 2020-06-09 【搜索引擎优化】江苏苏州关键词
- 2020-06-09 【seo是什么】全球首个藏文搜索引
- 2020-06-11 【seo营销】深圳南山网络推广最佳
- 2020-06-24 【seo工具】推广共享学堂降低成本
- 2020-07-12 【北京seo平台】著名分析师:为什
- 2020-07-15 【北京seo】苏州热销品互联网推广
- 2020-07-15 【北京seo网】宁德百度关键词推广
- 2020-07-22 【seo教程】关键字排名优化工具价
- 2020-07-26 【seo技术】牡丹江中院举办智能语
- 2020-07-31 【seo优化】项目进到♀村培训送上门
- 2020-08-01 【北京seo营销】小汉镇农校积极谋
- 2020-08-03 【seo工具】深圳福田销售技巧培训
- 2022-02-09 【北京seo实战】Robin:打造个人品
- 2022-01-11 【怎么做seo】北京市培育和激发市
- 2021-12-29 【seo工具】搜索引擎网站关键词
- 2021-12-11 【北京seo营销】苏州网站优化-服
- 2021-11-25 【seo营销】电影《007无暇赴死在线
- 2021-11-07 【北京seo平台】全市法院民商事审
- 2021-11-04 【搜索引擎优化】郑州SEO培训机构
- 2021-11-01 【北京seo】香飘飘今年前三季度营
- 2021-10-23 【北京seo实战】如何做好网站首页
- 2021-10-22 【搜索引擎优化】广州淘宝开店培
- 2021-10-13 【北京seo营销】点击率 影响排名
- 2021-10-08 【北京seo教程】百度网◤站导航是什
- 2021-09-23 【seo优化】“北京市优化营商环境
- 2021-08-15 【seo教程】9个网店推广技巧让你
- 2021-08-05 【北京seo平台】咨询下百度seo自动
- 2021-07-30 【北京seo教程】南京SEO软文代写有
- 2021-07-29 【搜索引擎优化】宁波360搜索优化
- 2021-07-22 【北京网站优化】益阳搜索引擎排
- 2021-07-21 【seo技术】杨宽个人博客
- 2021-07-14 【北京网站优化】北京云推速SE
- 2021-06-18 【北京seo教程】作业帮回应裁员:
- 2021-06-15 【北京seo平台】WordPress主题 大前
- 2021-06-09 【北京网站优化】SEO老炮儿再聚厦
- 2021-06-03 【北京seo】搜索引擎优化公司联系
- 2021-05-25 【北京seo平台】大山深处的他们,
- 2021-05-19 【北京seo营销】产品经理应该具有
- 2021-05-11 【北京seo营销】[优化网站培训]
- 2021-05-06 【seo是什么】跨境电商的实习工作
- 2021-04-27 【seo培训】百度seo排名点击器(百
- 2021-04-11 【北京seo营销】seo伴侣官方版v1
- 标签列表
-