流程结构控制语句的分类:
功能:用于控制程序执行流程。 选择结构--语句格式:
(表达){
情况1:
声明体1;
休息;
案例2:
声明体2;
休息;
案例3:
声明体3;
休息;
....
:
语句体n+1;
休息;
格式说明:
:表示这是一个选择结构
表达:价值有限
字节短整型字符
JDK5后添加枚举
JDK7后添加(字符串)
case:后跟要与表达式进行比较的值
break:表示中断结束,控制语句结束
:当所有值和表达式不匹配时执行。
实施过程:
1-首先找到表达式的值
2-然后匹配每个案例的值。 如果有对应的值,则执行该语句。 当遇到中断时,执行将结束。
3-当所有表达式结果与所有值均不匹配成功时,执行该语句,然后结束程序。
面试问题:
byte可以作为表达式吗? (能)
long 可以用作表达方式吗? (不能)
可以用作表达吗? (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)
星期五
请输入数据:(1-7)
200
您输入的数据不正确!
防范措施:
1-case 后面不能跟变量,只能跟常量。 例如情况:x 是错误的。
2-多个case后面的常量不允许相同。 例如列出两种情况: 1 不允许。
3- 可以省略,但不建议处理错误数据。
特例:
选项何时固定。 案件的价值已确定。
4-break可以省略,但结果可能会改变。
因为省略了break程序中断取消(案例穿透),所以程序会向下执行。
除特殊情况外,建议不要省略。
4-可以放在任何地方,但默认放在最后。
6-结束条件
遇到中断或程序执行到最后。