switch语句格式:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
语句格式解释说明:
表达式:取值是有限定的,byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是字符串。
case:后面跟的是要和表达式进行比较的值。
语句体:要执行的代码。
break:表示中断,结束,可以控制switch语句的结束。
default:当所有的值和表达式不匹配的时候,就执行default控制的语句(其实它就相当于if语句的else)。
一个面试题:
byte可以作为switch的表达式吗?long?String?
答:byte可以,long不可以,String在JDK7以后可以。
案例:
键盘录入一个数据,根据这个数据,我们输出对应的星期?
键盘录入1,对应输出星期一
键盘录入2,对应输出星期二
...
键盘录入7,对应输出星期日
分析:
1、键盘录入,用Scanner实现。
2、判断即可以使用if语句,也可以使用switch。
代码:
import java.util.Scanner;
public class SwitchDemo {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc=new Scanner(System.in);
//控制键盘录入数据
System.out.println("请输入一个数据(1-7):");
int week=sc.nextInt();
//switch判断语句
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;
}
}
}
运行结果如下:
请输入一个数据(1-7):
7
星期日
switch语句的注意事项:
A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的。
B:default可以省略吗?
可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
C:break可以省略吗?
可以省略,但是结果可能不是我们想要的。
会出现一个现象,case穿透。
最终我们建议不要省略。
D:default一定要在最后吗?
不一定,可以在任意位置,但是建议在最后。
E:switch语句的结束条件?
a:遇到break就结束了。
b:执行到末尾就结束了。
代码:
public class SwitchTest {
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);
System.out.println("----------");
int a=2;
int b=3;
switch(a){
default:
b++;
case 3:
b++;
case 4:
b++;
}
System.out.println("b="+b);
}
}
代码运行如下:
y=4
----------
b=6
案例:
根据键盘录入的字符串,判断是否有满足要求的,如有就输出,否则,提示有误。
代码:
import java.util.Scanner;
public class SwitchTest3 {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc=new Scanner(System.in);
//录入数据
System.out.println("请输入你要判断的字符串");
String s=sc.nextLine();
switch (s){
case "hello":
System.out.println("你输入的是hello");
break;
case "world":
System.out.println("你输入的是world");
break;
case "java":
System.out.println("你输入的是java");
break;
default:
System.out.println("没有找到");
}
}
}
代码运行如下:
请输入你要判断的字符串
java
你输入的是java
本小节完。