详述Java中switch分支语句
switch中数据变量类型:int byte short char string 枚举,不能用double float 和 boolean
1、 switch语句语法:
public class SwitchTest {
public static void main(String[] args) {
int i=1;
switch(i){
case 1 :
System.out.println("代码1");
case 2 :
System.out.println("代码2");
default :
System.out.println("代码3");
}
System.out.println("代码4");
}
}
运行结果:
代码1
代码2
代码3
代码4
2、 注意:
1.默认情况下,switch会从条件成立处开始执行,直到switch结束。(无break、return)
2.case后面一般不加大括号。不会只执行一条语句。
3.break用于结束其所在当前switch语句块程序的运行,但不会影响其所在语句块外部代码的执行。(必须用于循环或switch)
4.continue必须用于循环。
5.return作用:①用于结束当前所在方法(函数)。
②返回某一数值。
public class ReturnTest {
static void show(){
System.out.println("show方法");
return;
}
public static void main(String[] args) {
show();
System.out.println("main方法");
}
}
运行结果:
show方法
main方法
6.在一定会被执行的 return 语句后,写的语句为 不可达语句,
程序自动检测这种语句,永远不会被执行到,报错,代码如下:
public class SwitchTest {
public static void main(String[] args) {
int i = 1;
switch (i) {
case 1:
System.out.println("代码1");
case 2:
System.out.println("代码2");
default:
return;
}
System.out.println("代码4");
}
}
因为case1后增加了break语句,所以 “代码4”有被执行的可能,程序不报错,代码如下:
public class SwitchTest {
public static void main(String[] args) {
int i = 1;
switch (i) {
case 1:
System.out.println("代码1");
break;
case 2:
System.out.println("代码2");
default:
return;
}
System.out.println("代码4");
}
}
运行结果:
代码1
代码4
7.代码块里面不能有return(例如static),否则将报错,代码如下:
public class ReturnTest {
static{
System.out.println("show方法");
return;
}
public static void main(String[] args) {
System.out.println("main方法");
}
}
8.switch和if比较:
①switch性能更高,能用switch一定要用switch。
②具体值用switch,否则用if(1.如果case后的是个范围,则只能用if
2.如果shujvbianliangl是double,long,boolean等switch不能使用的数据类型时,只能用if)