switch分支语句详述
目录
switch......break与switch......return
switch语句
switch语句主要具有选择功能,switch中变量的数据类型有:byte,short,int,char,String,枚举。下边先通过一个例子了解一下switch语句。
int week = 1;
switch (week){
case 1: {//可加大括号,也可不加
System.out.println("星期一");
}
case 2:
System.out.println("星期二");
case 3:
System.out.println("星期三");
case 4:
System.out.println("星期四");
case 5:
System.out.println("星期五");
default:
System.out.println("ERROR");
}
运行结果
如果将代码改成如下例子,运行结果又会是怎样?
int week = 1;
switch (week){
case 2:
System.out.println("星期二");
case 3:
System.out.println("星期三");
case 1:
System.out.println("星期一");
case 4:
System.out.println("星期四");
case 5:
System.out.println("星期五");
default:
System.out.println("ERROR");
}
运行结果
由上边例子可以知道,在默认情况下,switch分支语句会从条件成立处开始执行。
switch......break与switch......return
switch分支语句的作用是做出选择,当条件成立时执行某操作,所以常和break或return搭配使用
1.switch......break,break用于跳出当前switch,执行switch之后的操作
//switch......break语句
int week = 1;
switch (week){
case 1:
System.out.println("星期一");
break;//结束当前switch
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
default:
System.out.println("ERROR");
}
System.out.println("out");
运行结果
2.switch......return,return用于跳出当前方法,不再执行当前方法的后续语句
int week=1;
switch (week){
case 1:
System.out.println("星期一");
return;//结束当前方法
case 2:
System.out.println("星期二");
case 3:
System.out.println("星期三");
case 4:
System.out.println("星期四");
case 5:
System.out.println("星期五");
default:
System.out.println("ERROR");
}
System.out.println("out");
运行结果
如果一定会执行到return,return后语句将不能运行,编译器会认为是不可达语句,不能通过编译
int i=3;
switch (i){
case 1:
System.out.println(1);
case 2:
System.out.println(2);
default:
System.out.println("NO");
return;//一定会执行
}
System.out.println("ERROR");//错误,不可达
如果return语句有不会执行的可能,则会通过编译,可以运行
int i= 1;
switch (i){
case 1:
System.out.println("@@");
case 2:
System.out.println(2);
break;
default:
System.out.println("NO");
return;//有不会执行的可能
}
System.out.println("OK");//可运行*/
switch分支语句和if......else
if分支语句和switch分支语句都具有选择的功能,如果选择的对象是一个具体的值,则用switch;如果是一个范围,用if。在我们编程过程中最好选用switch,因为switch的性能更高。