从零学Java(25)之 break语句详解

♀ 小AD:明哥我来了!

♂ 明世隐:乖来学习Java来了。

♀ 小AD:不是啊,我就是今天不太想学新知识,今天没状态。

♂ 明世隐:怎么没状态了。

♀ 小AD:被人打爆了。

♂ 明世隐:哎哟真的是,明哥没在,顶不住了吧。

♀ 小AD:主要是还被别人骂了,我就很气氛,直接退游戏了。

♂ 明世隐:那你退游戏这个动作,似乎不太合适呀。

♀ 小AD:我管他们呢,想退就退,我的游戏我做主。

♂ 明世隐:说得好,干的漂亮,做人就是要洒脱一点。

♀ 小AD:我能跟明哥一样就了。

♂ 明世隐:其实不难,就跟学程序一样的,学会主动退出就好。

♀ 小AD:主动退出,之前好像有接触过吧。

♂ 明世隐:对啊,之前不是有死循环的,设定退出条件,用break语句吗?

♀ 小AD:嗯是我有印象的。

♂ 明世隐:那今天就加深一下印象,详细了解一下break。

描述

===============================================================

某些时候需要在某种条件出现时强行终止循环,而不是等到循环条件为 false 时才退出循环。此时,可以使用 break 来完成这个功能。

break 用于完全结束一个循环,跳出循环体。不管是哪种循环,一旦在循环体中遇到 break,系统将完全结束该循环,开始执行循环之后的代码。

switch 中使用break

============================================================================

实例1


import java.util.Calendar;

public class Demo2 {

public static void main(String[] args) { String weekDate = “”;

Calendar calendar = Calendar.getInstance(); // 获取当前时间

int week = calendar.get(Calendar.DAY_OF_WEEK) - 1; // 获取星期的第几日

switch (week) {

case 0:

weekDate = “星期日”;

break;

case 1:

weekDate = “星期一”;

break;

case 2:

weekDate = “星期二”;

break;

case 3:

weekDate = “星期三”;

break;

case 4:

weekDate = “星期四”;

break;

case 5:

weekDate = “星期五”;

break;

case 6:

weekDate = “星期六”;

break;

}

System.out.println("今天是 " + weekDate);}

}

运行结果:

今天是 星期三

♂ 明世隐:首先今天刚好是星期三(测试代码的日子)。

♀ 小AD:因为 case 3 后面加了break,所以走到这里后,switch会被退出,对吗?

♂ 明世隐:对的呀,很清晰,你看每一个case里面都加了一个break,确保执行完就退出。

♀ 小AD:那如果我不加break会怎么样?

♂ 明世隐:来去调这个break你就知道了。

实例2


import java.util.Calendar;

public class Demo2 {

public static void main(String[] args) { String weekDate = “”;

Calendar calendar = Calendar.getInstance(); // 获取当前时间

int week = calendar.get(Calendar.DAY_OF_WEEK) - 1; // 获取星期的第几日

switch (week) {

case 0:

weekDate = “星期日”;

break;

case 1:

weekDate = “星期一”;

break;

case 2:

weekDate = “星期二”;

break;

case 3:

weekDate = “星期
三”;

case 4:

weekDate = “星期四”;

break;

case 5:

weekDate = “星期五”;

break;

case 6:

weekDate = “星期六”;

break;

}

System.out.println("今天是 " + weekDate);}

}

运行结果:

今天是 星期四

♀ 小AD:为啥呢,会跑的星期4了。

♂ 明世隐:因为case 3匹配到以后,weekDate被设置为”星期三“,然后因为没有break,所以case 4会被执行,于是weekDate再次被设置为”星期四“。

♀ 小AD:然后星期4这里再执行break,所以最后会输出这个结果。

♂ 明世隐:对啊,所以这样程序就是错误的。

♀ 小AD:嗯我晓得了,在switch中要注意break的使用。

♂ 明世隐:就是这个意思。

while中用break

=========================================================================

public class Test {

public static void main(String[] args) {

int num=0;

while (true) {

//打印

System.out.println(“打印数字:”+num);

//递增

num++;

//加入主动退出条件

if(num>5){

break;

}

}

}

}

运行结果:

打印数字:0

打印数字:1

打印数字:2

打印数字:3

打印数字:4

打印数字:5

分析:如果这段代码,没有加入 break 则会死循环哦。

for 循环中使用break

===========================================================================

实例1


没有break的for循环。

public class Test2 {

public static void main(String[] args) {

//for循环打印

for (int i = 0; i < 10; i++) {

System.out.println(“打印:”+i);

}

}

}

运行结果:

打印:0

打印:1

打印:2

打印:3

打印:4

打印:5

打印:6

打印:7

打印:8

打印:9

如果我想打印完5就不打印了呢,这个时候就要用到break语句了。

实例2


for循环中使用break语句(打印到5就退出)

public class Test2 {

public static void main(String[] args) {

//for循环打印

for (int i = 0; i < 10; i++) {

System.out.println(“打印:”+i);

if(i==5){

break;

}

}

}

}

打印:0

打印:1

打印:2

打印:3

打印:4

打印:5

♀ 小AD:这个就跟我游戏打的不爽了,直接退出?

♂ 明世隐:对啊,就是这个类似的效果。

♀ 小AD:这么说我就懂了,等于后面的不需要就过滤掉了,节省了时间哦。

♂ 明世隐:节省了性能呢。

实例3


break如果使用在嵌套for循环中,只会跳出当前循环。

public class Test2 {

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次循环

♂ 明世隐:可以看到,此时内循环中满足条件 j==3后,循环被退出。

♀ 小AD:但是外循环怎么还是5次呢。

♂ 明世隐:因为break只会跳出当前循环。

♀ 小AD:那我就想跳出外面的循环呢。

♂ 明世隐:也有办法。

实例4

  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值