1.面试题
byte可以作为switch的表达式吗? //可以
long可以作为switch的表达式吗? //不可以
String可以作为switch的表达式吗? //可以
class Demo1_Switch {
public static void main(String[] args) {
int x = 10;
switch(表达式) { //基本数据类型可以接收byte,short,char,int
case 值1: //引用数据类型可以接收枚举(JDK1.5)String字符串(JDK1.7)
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
}
}
2.整数(给定一个值,输出对应星期几)
class Test1_Switch {
public static void main(String[] args) {
int week = 1;
switch (week) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("对不起没有对应的星期");
break;
}
}
}
3.注意事项
a.case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
b.default可以省略吗?
* 可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
* 特殊情况:
* case就可以把值固定。
* A,B,C,D
c.break可以省略吗?
* 最后一个可以省略,其他最好不要省略
* 会出现一个现象:case穿透。
* 最终我们建议不要省略
d:default一定要在最后吗?
* 不是,可以在任意位置。但是建议在最后。
e:switch语句的结束条件
* a:遇到break就结束了
* b:执行到switch的右大括号就结束了
4.看程序写结果
int x = 2;
int y = 3;
switch(x){
default:
y++;
break;
case 3:
y++;
case 4:
y++;
}
class Test2_Switch {
public static void main(String[] args) {
int x = 2;
int y = 3;
switch(x){
default:
y++;
break;
case 3:
y++;
case 4:
y++;
}
System.out.println("y="+y); //y=4
}
}
5.看程序写结果
int x = 2;
int y = 3;
switch(x){
default:
y++;
case 3:
y++;
case 4:
y++;
}
System.out.println("y="+y);
class Test2_Switch {
public static void main(String[] args) {
int x = 2;
int y = 3;
switch(x){
default:
y++;
case 3:
y++;
case 4:
y++;
}
System.out.println("y="+y); //y=6
}
}