我是靠谱客的博主 淡然母鸡,这篇文章主要介绍java switch要记得break(一个小坑~),现在分享给大家,希望可以做个参考。

今天遇到的BUG

= =

switch忘记break了= =

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package julyStudy; /** * @Author : pmdream * @Description : SwitchUseCase * @Date : 2019/7/17 */ public class SwitchUseCase { public static void main(String[] args) { int a = 1; int b = 1; switch (a) { case 1 : b++; System.out.println(b); case 2 : b++; System.out.println(b); case 3 : b++; System.out.println(b); case 4 : b++; System.out.println(b); default: break; } } }

结果就是:

2
3
4
5

如果第一步就是default呢?

 

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package julyStudy; /** * @Author : pmdream * @Description : SwitchUseCase * @Date : 2019/7/17 */ public class SwitchUseCase { public static void main(String[] args) { int a = 1; int b = 1; switch (a) { default: break; case 1 : b++; System.out.println(b); case 2 : b++; System.out.println(b); case 3 : b++; System.out.println(b); case 4 : b++; System.out.println(b); } } }

结果依然是:

2
3
4
5

 所以defaul其实并没有执行。

switch(表达式)
{
case 常量表达式1:语句1;
....
case 常量表达式2:语句2;
default:语句;
}


default就是如果没有符合的case就执行它,default并不是必须的.

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package julyStudy; /** * @Author : pmdream * @Description : SwitchUseCase * @Date : 2019/7/17 */ public class SwitchUseCase { public static void main(String[] args) { int a = 111; int b = 1; switch (a) { default: a++; System.out.println(a); break; case 1 : b++; System.out.println(b); break; case 2 : b++; System.out.println(b); break; case 3 : b++; System.out.println(b); break; case 4 : b++; System.out.println(b); break; } } }

总结:

一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package julyStudy; /** * @Author : pmdream * @Description : SwitchUseCase * @Date : 2019/7/17 */ public class SwitchUseCase { public static void main(String[] args) { int a = 111; int b = 1; switch (a) { default: break; case 1 : b++; System.out.println(b); case 2 : b++; System.out.println(b); case 3 : b++; System.out.println(b); case 4 : b++; System.out.println(b); } } }

所以上述执行结果就是空的。

 

所以一旦case条件对了,他就要找到break;而不会关心后面的case条件了~

如果所有条件都没有合适的,那么它一段代码都不会执行

最后

以上就是淡然母鸡最近收集整理的关于java switch要记得break(一个小坑~)的全部内容,更多相关java内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部