switch多选择结构
-
多选择结构还有一个实现方式就是switch case 语句
-
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
-
语法:
switch(expression){ case value : //语句 break; //可选 case value : //语句 break;//可选 //你可以有任意数量的case语句 default ://可选 // }
if是判断区间,而switch 是判断一个具体的值,在这方面 ,用switch更加好。
注:可选的意思是,也能不选,不选程序也能跑起来。如果不选 break; ,下面的东西都会输出。这种现象就是 case 穿透现象。所以我们要注意,每输出一次,就要用 break; 结束 如下图:
当我们输入一个 ‘B’ 红色箭头所指,我们可以看到蓝色箭头所指,case 'B’以下,都没有用 break。所以全部输出了,玫瑰色方框中我们可以看见。
当我们输入一个 ‘A’ ,可见,橙色方框里面有 break ,所以 case没有穿透,输出 优秀就停止了。
所以正确的应该是这样写,如下图:
-
switch语句中的变量类型是:
- byte、short、int 或者 char
- 从 Java SE 7 开始
- switch 支持字符串 String 类型了
- 同时 case 标签必须为字符串常量或字面量
实例:我们看到下图中,String name = ‘张浩’ ;
我们运行一下可以得到,红色箭头:
-
反编译 java—class (字节码)------实现反编译(IDEA)
第一步:打开 project Structure ,或者通过快捷键打开 Ctrl+Alt+Shift+S
第二步:下图红色方框中的路径复制下来。
第三步:复制在我们的地址栏上面
第四步:复制后,回车Enter,得到 一个 名为 production 的文件夹。
第五步:按照红色箭头的中步骤,一步步,点击至下图蓝色方框中的内容呈现。这些内容就是我们执行的 class文件
第六步 我们 右击 用 notepa++ ,打开,可以看到一堆乱码,根本看不懂。所以我们需要反编译。
第七步 如下图步骤;
得到下图;
那么我们把第五步中呈现的文件夹中的一个类复制到上图的文件夹中:
第六步 打开idea,我们可以发现多出来了这个类,红色箭头所指,这就是我们第五步复制粘贴上去的呈现效果。双击红色箭头所指的类。蓝色区域就是我们通过 idea 反编译 生成的文件。
第六步 我们可以打开 split Right,来看一下代码,进行对比,得出为什么 switch 为什么能够支持字符串 String 类型
这里我们就看到对比:可以看到红色框中 hashCode,可以理解为每一个对象都有自己的一个 hashCode,它是通过一些特定的算法生成的,图中的名字,中文都有对应的 hashCode 值。通过判断 hashCode 值相同不相同来进行比较。