switch选择结构

1、定义


switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。 

2、语法


switch case 语句语法格式如下:

      

 switch(表达式){
            case 常量 1:
                语句;
                break;    //可选
            case 常量 2:
                语句;
                break;    //可选
            ......        //你可以有任意数量的case语句
            default:      //可选 
                语句;
                break;
        }


-->switch、case、break、default是Java关键字

-->switch后的表达式可以是int、short、byte、char、枚举类型、从 JDK1.7开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。

-->case用于与表达式进行匹配,switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。

-->break用于终止后续语句的执行。

-->default是可选的,当其他条件都不匹配时执行default。

switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。

public class Test {
   public static void main(String args[]){
      //char grade = args[0].charAt(0);
      char grade = 'C';
 
      switch(grade)
      {
         case 'A' :
            System.out.println("优秀"); 
            break;
         case 'B' :
         case 'C' :
            System.out.println("良好");
            break;
         case 'D' :
            System.out.println("及格");
            break;
         case 'F' :
            System.out.println("你需要再努力努力");
            break;
         default :
            System.out.println("未知等级");
      }
      System.out.println("你的等级是 " + grade);
   }
}

3、执行规律


1)计算switch后表达式的值。

2)将计算结果从上至下依次与case后的常量值比较。

3)如果相等就执行该常量后的代码块,遇到break语句就结束。

4)如果与任何一个case后的常量值都不匹配,就执行default中的语句。

注意事项:

1)如果case后没有break语句,程序将继续向下执行,直到遇到break语句或switch语句结束----“case穿透”。

  

  public static void main(String[] args) {
        /*
         * 根据输入的月份来输出月份属于哪个季节
         * 
         * 12 1 2 冬季
         * 3 4 5 春季
         * 6 7 8 夏季
         * 9 10 11 秋季
         * 
         */
        
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入月份(1-12):");
        int month =sc.nextInt();
        
        switch(month){
        case 12:
//            System.out.println("冬季");
//            break;
        case 1:
//            System.out.println("冬季");
//            break;
        case 2:
            System.out.println("冬季");    //输入12,1月时,穿透进入case 2:中
            break;
        case 3:
//            System.out.println("春季");
//            break;
        case 4:
//            System.out.println("春季");
//            break;
        case 5:
            System.out.println("春季");    //输入3,4月时,穿透进入case 5:中
            break;
        case 6:
//            System.out.println("夏季");
//            break;
        case 7:
//            System.out.println("夏季");
//            break;
        case 8:
            System.out.println("夏季");    //输入6,7月时,穿透进入case 8:中
            break;
        case 9:
//            System.out.println("秋季");
//            break;
        case 10:
//            System.out.println("秋季");
//            break;
        case 11:                            
            System.out.println("秋季");    //输入9,10月时,穿透进入case 11:中
            break;
        }
 
    }

2)case常量值不能相同。

3)default语句可以在任意位置书写,但一般写在switch结构的末尾。也可以省略不写。

4、 switch与多重if异同点
相同点:

都是用来处理多分支条件的结构

不同点:

switch选择结构只能处理等值条件判断的情况

多重if选择结构既能处理某个变量处于某个连续区间时的情况,也能处理等值条件判断的情况
 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值