Switch笔记
介绍:根据一个整数表达式的值,switch 语句可从一系列 代码选出一段执行。它的格式如下:
switch(整数选择因子) {
case 整数值 1 : 语句; break;
case 整数值 2 : 语句; break;
//…
default:语句;
注意:
1、没有发现相符的,就执行default 语 句
“整数选择因子”是一个特殊的表达式,能产生整数值。switch 能将整数选择因子的结果与每个整数值比较。若发现相符的,就执行对应的语句(简单或复合语句)。若没有发现相符的,就执行default 语 句。
2、省略 break,会继续执行后面的case 语 句的代码,直到遇到一个break 为止
大家会注意到每个case 均以一个break 结尾。这样可使执行流程跳转至 switch 主体的末 尾。这是构建switch 语句的一种传统方式,但break 是可选的。若省略 break,会继续执行后面的case 语 句的代码,直到遇到一个break 为止
3、char型是有整形的,对应的是ascll码表
‘0’对应48 —— ‘9’对应57
‘A’对应65 ——‘Z’对应90
‘a’对应97 —— ‘z’对应122
Switch只能接收整形:其中byte,short,int,char(运用的是ASCLL码),String(是使用String类的hashCode()方法返回值)
(以下部分参考https://www.hollischuang.com/archives/61)
public class switchDemoString {
public static void main(String[] args) {
String str = "world";
switch (str) {
case "hello":
System.out.println("hello");
break;
case "world":
System.out.println("world");
break;
default:
break;
}
}
}
对代码进行反编译:
public class switchDemoString
{
public switchDemoString()
{
}
public static void main(String args[])
{
String str = "world";
String s;
switch((s = str).hashCode())
{
default:
break;
case 99162322:
if(s.equals("hello"))
System.out.println("hello");
break;
case 113318802:
if(s.equals("world"))
System.out.println("world");
break;
}
}
}