java基础——流程控制(选择结构)switch语句

时间:2021-08-29 01:10:42

流程结构控制语句分类:


作用:用来控制程序执行流程。

选择结构--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或程序执行到最后。