1.switch(表达式){ //该表达式只能是byte,short,int,char,String(JDK1.7以前不允许使用,JDK1.7开始引入),enum(枚举类型)
case 常量1: //常量1,常量2,常量3,都只能是常量
语句
break
case 常量2:
语句
break
case 常量3:
语句
break
default:
语句
break
2执行流程:计算表达式的值,从第一个匹配的case常量开始一直向下运行,直到找到break为止,如果途中遇到default也会正常运行其中的语句。当表达式不与任何case 后面的常量匹配时,会从default语句开始一直向下运行,知道遇到break为止,途中遇到case语句也会正常运行其中的语句。
3default语句的顺序可以改变,但要注意改变顺序对程序的影响。
4不管是在case还是在default中写不写break都行
4一个需要注意的问题
public class A {
public static void main(String[] args) {
char tmp='a';
switch(tmp) {
case 97:
System.out.println(tmp);
default:
System.out.println("呵呵");
}
}
输出:
a
呵呵
public class A {
public static void main(String[] args) {
switch('a') {
case 97:
System.out.println("哈哈");
default:
System.out.println("呵呵");
}
}
}
输出:
哈哈
呵呵
package day3_1;
public class A {
public static void main(String[] args) {
char tmp='a';
switch(tmp) {
case 97:
System.out.println(tmp); //报错
case 'a':
System.out.println(tmp); //报错
default:
System.out.println("呵呵");
}
}
}
报错显示定义重复的实例