Switch选择结构
多选择结构除了if else if
外还有一个switch
,对于Switch的实现简单说说
-
Switch case 语句判断一个变量与一系列中的某个值是否相等,每个值就称为一个分支
-
Switch case 语句中的变量类型可以是
byte
,short
,int
,char
,String(java 7)
-
语法结构
switch(expression){
case value:
//语句
break;//可选
case value:
//语句
break;//可选
//可以有N个case语句
default://可选
//语句
}
解释一下
- expression表达式的值是不是就要和下面的value对应啊,这样才能进行一个选择嘛
- 没有对应的就走一个默认的,也就是default那个判断了,所以一般我们在书写的时候尽量带一个default
- 对于break语句边写边说吧
写个代码就会很清楚啦 先了解一个词case表示穿透,这样的话就先解决break语句吧
public class SwitchText {
public static void main(String[] args) {
//定义一个变量
char expression = 'b';//java是区分单引号和双引号的,双引号表示字符串,单引号表示字符,在定义的时候注意一下就行了
//别搞混了,一个字符也可以认为是字符串,但是多个字符组成的字符串总不能说是一个字符吧
switch(expression){
case 'a':
System.out.println("A");
break;
case 'b':
System.out.println("B");
case 'c':
System.out.println("C");
case 'd':
System.out.println("D");
}
}
}
//输出
/*
B
C
D
*/
我们想要的结果是选择b
就输出B
就行了,但是下面的全部都输出了,这种现象就叫做**case 穿透**,所以我们没有什么特殊要求,尽量都加上break
语句,表示结束,运行完当前语句就结束这个Switch选择
- 当然还有一个默认值,这个就不演示了,就是加上默认值,没有在case中匹配到就会走默认值那条分支,要是之前的语句没有break语句的话,默认值也会跟着进行输出,emmm…算了,还是写一下吧
这样不知道能不能理解这个break 和 default 语句了,我觉得还是很好理解的
- 所以加上break 之后,只会执行匹配的那个case,执行完然后就结束了,就不会有什么穿透现象了
还有一个问题需要解决
- 要是执行表达式的语句在break的上面会怎么样,试试呗,实践是真谛
结果就不截图了
-
结果为
B C
-
所以,这个程序是遇到
break
就会停止,有了break就不会有**case 穿透 **了
重点
- 表达式除了八大基本类型外,还支持
String
类型,这个在开始就说明了 - 对于这个重点就不举例了,用法还八大基本类型一样,不过注意,
""
这个才表示字符串,多注意单双引号啊
既然是重点,那就不会只有这么点东西了,来,上点难度
- 我们知道所有的字符的底层都是数字,所以这个字符串也应该是由数字组成的
- 了解一个点反编译 ,对于编译在很早前就讲过 是一个把java文件变成class文件的过程,而反编译就是将这个过程给反过来
- 看如下string ,左边的是反编译右边的字节码文件的,这么一比较就知道底层是怎么进行的了,这里就不过多解释了