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


使用 break label语法来实现类似goto 的功能

public class Test3 {

public static void main(String[] args) {

// 外循环

out: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 out;

}

System.out.print(“内循环的第” + (j + 1) + “次循环\t”);

}

System.out.println();

}

}

}

运行结果:

第1次循环:内循环的第1次循环 内循环的第2次循环 内循环的第3次循环

分析:我们用 out 来给外层整个代码块命名,当 j==3 成立的时候,直接break out,就等于直接结束整个循环代码。

♀ 小AD:原来break还有这么多用处啊 ,秒啊。

♂ 明世隐:所以说知识要经常学,我们懂的越多,就会感觉自己要学的更多,越学越有劲。

♀ 小AD:好像是有那么一回事,我今天开始都不是很想学,但学起来又还没有味道。

♂ 明世隐:嘿嘿,上瘾了。

♀ 小AD:就跟打游戏似的,明明打输了,却还是要继续玩。

♂ 明世隐:学Java有这个劲头肯定可以成为大神。

♀ 小AD:我超神就可以了。

最后总结

ActiveMQ+Kafka+RabbitMQ学习笔记PDF

image.png

  • RabbitMQ实战指南

image.png

  • 手写RocketMQ笔记

image.png

  • 手写“Kafka笔记”

image

关于分布式,限流+缓存+缓存,这三大技术(包含:ZooKeeper+Nginx+MongoDB+memcached+Redis+ActiveMQ+Kafka+RabbitMQ)等等。这些相关的面试也好,还有手写以及学习的笔记PDF,都是啃透分布式技术必不可少的宝藏。以上的每一个专题每一个小分类都有相关的介绍,并且小编也已经将其整理成PDF啦
续玩。

♂ 明世隐:学Java有这个劲头肯定可以成为大神。

♀ 小AD:我超神就可以了。

最后总结

ActiveMQ+Kafka+RabbitMQ学习笔记PDF

[外链图片转存中…(img-GaKOJh1t-1718909422823)]

  • RabbitMQ实战指南

[外链图片转存中…(img-ja5kRJs0-1718909422824)]

  • 手写RocketMQ笔记

[外链图片转存中…(img-o6qqFZMJ-1718909422824)]

  • 手写“Kafka笔记”

[外链图片转存中…(img-Q0dMrNGE-1718909422825)]

关于分布式,限流+缓存+缓存,这三大技术(包含:ZooKeeper+Nginx+MongoDB+memcached+Redis+ActiveMQ+Kafka+RabbitMQ)等等。这些相关的面试也好,还有手写以及学习的笔记PDF,都是啃透分布式技术必不可少的宝藏。以上的每一个专题每一个小分类都有相关的介绍,并且小编也已经将其整理成PDF啦

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐