流程结构控制语句分类:
作用:用来控制程序执行流程。
选择结构--switch
switch语句格式:
switch(表达式){case 1:
语句体1;
break;
case 2:
语句体2;
break;
case 3:
语句体3;
break;
....
default:
语句体n+1;
break;
}
格式的解释:switch:表示这是选择结构
表达式:取值有限定
byte short int char
JDK5之后加入枚举
JDK7之后加入String(字符串)
case:后面跟的是要和表达式进行比较的值
break:表示中断结束的意思,控制switch语句的结束
default:当所有的值和表达式都不匹配时候执行。
执行流程:
1-首先得出表达式的值
2-然后个case的值进行匹配,如果有值与之对应,则执行该语句,执行过程中遇到break就结束。
3-当所有的表达式结果和所有值都没有匹配成功,则执行default语句,然后结束程序。
面试题:
byte可以作为switch的表达式么?(可以)
long可以作为switch的表达式么?(不可以)
String可以作为switch的表达式么?(JDK7后可以)
案例:键盘打印对应的日期。
package com.lcn.day04;
import java.util.Scanner;
public class SwitchDemo1 {
/**
* 键盘录入数字对应相应一周的天数。
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数据:(1-7)");
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:
break;
}
}
}
结果:
请输入一个数据:(1-7)
5
星期五
请输入一个数据:(1-7)
200
您输入的数据有误!
注意事项:
1-case后面不能是变量,只能是常量。例如 case:x是错误的。
2-多个case后面的常量不允许相同。 例如 列出了两个case:1是不允许的。
3-default可以省略但是不建议省略,用来对错误数据处理。
特殊情况:
选项是固定的时候。case的值是确定的。
4-break可以省略,但是得到结果可能有变化,
因为省略break程序中断取消(case穿透),程序会向下执行。
除特殊情况建议不要省略。
4-default可以放在任意位置,但是默认在最后。
6-switch的结束的条件
遇到break或程序执行到最后。