选择结构语句之switch:
switch
语句在开发过程中的使用仅次于
if
语句的使用.
switch语句:
switch 语句格式:switch ( 表达式 ) {case 值 1 :语句体 1 ;break ;case 值 2 :语句体 2 ;break ;…default :语句体 n + 1 ;break ;}
执行流程:
执行流程
switch接收结果,
- 接收的结果和case后面的值1进行对比,成立,执行语句1,break 结束语句;
- 值1和switch接收的结果不匹配,和值2进行比较,成立,执行语句2, break,结束语句;
- 如果上面case都不匹配,执行default语句,语句n,break ,结束...
代码实现:键盘录入一个值,判断星期
1,星期一
2,星期二
3,星期三,
4,星期四
5,星期五
6,星期六
7,星期日
import java.util.Scanner;
public class SwitchDemo {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("输入一个数据:");
int week=sc.nextInt();
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;
}
}
}
switch
语句中,表达式的数据类型,可以是
byte
,
short
,
int
,
char
,
enum
(枚举),
jdk7
以后可以接收字符串。
注意事项:
- case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
- default可以省略吗?可以省略。一般不建议。除非判断的值是固定的。(单选题)
- break可以省略吗?可以省略,一般不建议。否则结果可能不是你想要的
- default的位置一定要在最后吗?可以出现在switch语句任意位置。
- switch语句的结束条件:
- 遇到break
- 执行到程序的末尾
case的穿透性:
在
switch
语句中,如果
case
的后面不写
break
,将出现穿透现象,也就是不会在判断下一个
case
的值,直接向后运 行,直到遇到break
,或者整体
switch
结束。
public static void main ( String