switch选择结构基础

switch多选择结构

  • 多选择结构还有一个实现方式就是switch case语句
  • switch case 语句判断一个变量与一系列中某个值是否相等,每一个值称为一个分支
  • switch语句中的变量类型可以是:byte,short ,int,char
    • 从Java SE7开始,switch支持字符串String类型了
package com.sgz.structure;

import com.sun.org.apache.bcel.internal.generic.SWITCH;

import javax.jws.soap.SOAPBinding;

public class SwitchDemo01 {
    public static void main(String[] args) {
        //case穿透 //switch 匹配一个具体的值
        /*每写一个case,都要加上break,否则case穿透性会把下面的都输出了*/
        char grade = 'A';
        switch (grade){ //把grade的值放在下面找相等的
            case'A':
                System.out.println("优秀");
                break;//可选
            case'B':
                System.out.println("良好");
                break;//可选
            case'C':
                System.out.println("及格");
                break;//可选
            case'D':
                System.out.println("再接再厉");
                break;//可选
            case'E':
                System.out.println("挂科");
                break;//可选
            default:
                System.out.println("未知等级");
        }
    }
}
//只输出了优秀

image-20220717161447307

错误范例

image-20220717161201056

  • case穿透现象,所以每写完一个case都要加break,非常重要

image-20220717161149134

字符串类型的switch多选择类型

  • String s ="SGZ";

    package com.sgz.structure;
    
    public class SwitchDemo02 {
        public static void main(String[] args) {
            String name = "zml";
            //JDK7的新特性,表达式结果可以是字符串!!
            //字符的本质还是数字
    
            //反编译    java——>class(字节码文件)----反编译(IDEA)
    
            switch (name){
                case "zml"://冒号
                    System.out.println("wife" );
                    break;//加上break,防止穿透
                case"lyy":
                    System.out.println("friend1");
                    break;
                case"lzy":
                    System.out.println("friend2");
                    break;
                case"sgz":
                    System.out.println("me");
                    break;
                default://未知等级
                    System.out.println("写的啥啊");
            }
        }
    }
    
    

反编译文件查看

  • 找到class文件的地址

image-20220717165944901

  • 把class文件拷过去,从文件夹层面拷,不从idea里拷

image-20220717170232761

image-20220717170318202

  • 最后还是找一个数字,每一个中文都会在hashCode的哈希表里有对应的数字

image-20220717170619333

posted @ 2022-07-18 15:48  来自土木的一员  阅读(62)  评论(0)    收藏  举报