switch语法

/*
    1、关于switch语句:
        switch也属于选择语句,也是分支语句
        switch语句的语法结构:
            switch(int或String类型的字面值或变量){
                case int或String类型的字面值或变量:
                    java语句;
                    java语句;
                    ...
                    break;
                case int或String类型的字面值或变量:
                    java语句;
                    java语句;
                    ...
                    break;
                case int或String类型的字面值或变量:
                    java语句;
                    java语句;
                    ...
                    break;
                ...
                default:
                    java语句;
                    ...
            }
    2、switch语句的执行原理:
        switch后面的小括号当中的
        “数据”和case后面的“数据”进行一一匹配,
        匹配成功的分支执行

    3、匹配成功的分支执行,
        分支当中最后有“break;”语句的话,
        整个switch语句终止

    4、匹配成功但是分支没有“break;”,
        直接进入下一个分支执行(不进行匹配),
        被称之为case穿透现象

    5、所有分支都没有匹配成功,当有default的语句块,
        会执行default分支当中的程序

    6、switch后面和case后面只能是int或者String类型的数据

    7、case可以合并:
        int i = 10;
        switch(i){
            case 1; case 10; case 20;
            System.out.println("!");
        }
*/
public class SwitchTest01
{
    public static void main(String[] args){
        
        //解决编译报错
        long a = 100L;
        switch((int)a){}

        /*
            较完整的switch语句
        */
        //1 表示星期一
        //2 表示星期二
        //....
        //7 表示星期天
        java.util.Scanner s = new java.util.Scanner(System.in);
        System.out.print("请输入数字:");
        int num = s.nextInt();
        switch(num){
            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 :
                System.out.println("输入非法数字");
        }
    }
}
/*
    文字作为判断
*/
public class SwitchTest02
{
    public static void main(String[] args){
        
        java.util.Scanner s = new java.util.Scanner(System.in);

        System.out.print("输入星期几:");

        String dayOfWeek = s.next();

        switch(dayOfWeek){
            
            case "星期一" :
                System.out.println(1);
                break;

            case "星期二" :
                System.out.println(2);
                break;
            
            default :
                System.out.println("输入错误");

        }
    }
}

/*
    计算器
*/
public class SwitchTest03
{
    public static void main(String[] args){
        
        java.util.Scanner s = new java.util.Scanner(System.in);
        System.out.print("请输入第一个数字:");
        int fir = s.nextInt();
        
        System.out.print("请输入运算符:");
        String y = s.next();

        System.out.print("请输入第二个数字:");
        int sec = s.nextInt();

        int result = 0;
        switch(y){
            
            case "+" :
                result = fir + sec;
                break;
            case "-" :
                result = fir - sec;
                break;
            case "*" :
                result = fir * sec;
                break;
            case "/" :
                result = fir / sec;
                break;
            default :
                System.out.println("该系统不支持");
        }
        
        System.out.println("运算结果为:" + fir + y + sec + "=" + result);

    }
}
/*
    假设系统给定考生成绩,请判断考生的成绩等级:
        1、有效范围:[0~100]
        2、考试成绩可能带有小数
        3、考试成绩和等级之间的对照方式:
            [90-100] A
            [80-90) B
            [70-80) C
            [60-70) D
            [0-60) E
        4、以上采用switch语句完成
*/
public class SwitchTest04
{
    public static void main(String[] args){
        
        java.util.Scanner s = new java.util.Scanner(System.in);

        System.out.print("成绩是:");
        int score = s.nextInt();
        score /= 10;
        String level = "A";

        switch(score){
            
            case 9 : case 10 :
                level = "A";
                break;
            case 8 :
                level = "B";
                break;
            case 7 :
                level = "c";
                break;
            case 6 :
                level = "D";
                break;
            default :
                level = "E";
                break;
        }
        System.out.println("成绩等级是:" + level);
    }
}

 

 

 

posted @ 2020-08-10 23:04  Lerresino  阅读(1300)  评论(0编辑  收藏  举报