Java分支结构

118 阅读2分钟

1.1 if分支

1.1.1 if单独使用
    private static void method1() {
        int a = 10;
        // 当条件表达式结果为true的时候 执行if分支;否则不执行分支
        if (a > 1) {
            System.out.println("aaa");
        }
        System.out.println("end");
    }
1.1.2 if...else搭配使用
    private static void method2() {
        int score = 90;
        // 二选一 , if或else只能执行一个分支
        // 当条件表达式结果为true的时候 执行if分支;否则执行else分支;
        if (score > 60) {
            System.out.println("成绩及格");
        } else {
            System.out.println("成绩不及格");
        }
    }
1.1.3 多重if分支 if..else if...else if...else
  • 区间判断 多重if
    只会执行其中一个分支(如果没有else 有可能分支一个都不执行)
    public static void method3() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入学生成绩:");
        int score = sc.nextInt();
        //只会执行其中一个分支
        if (score >= 90) {
            System.out.println("优秀");
        } else if (score >= 80) {
            System.out.println("良好");
        } else if (score >= 60) {
            System.out.println("中等");
        } else {
            //所有分支都不满足的情况下,执行else分支
            System.out.println("差");
        }
        System.out.println("end");
    }

MARK 如果使用的是 < 最小的数放在上面;

    public static void method4() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入学生成绩:");
        int score = sc.nextInt();
        // 只会执行其中一个分支
        // 如果使用的是  <  最小的数放在上面;
        if (score < 60) {
            System.out.println("差");
        } else if (score < 80) {
            System.out.println("中等");
        } else if (score < 90) {
            System.out.println("良好");
        } else {
            //所有分支都不满足的情况下,执行else分支
            System.out.println("优秀");
        }
        System.out.println("end");
    }

1.2 switch分支

  • switch 用来做等值判断; 内部使用 == 进行判断;
  • break是用来终止分支,只要执行了break整个分支结构结束;
  • 每个case后面都要加一个break,default后面也要加break;
  • 如果case后面没有加break 会发生case穿透,以一个入口case进入,依次穿透下面的case,直到碰到break结束;
  • 当所有case都不满足的时候,执行default分支;
  • switch 小括号中表达式的值的数据类型只能是 byte short char int 包装类型,String,enum (枚举类型)
1.2.1 基本使用
    private static void method5() {
        int rank = 1;
        // switch 用来做等值判断 内部使用 == 进行判断
        switch (rank) {
            case 1:
                System.out.println("1000");
                break;
            case 2:
                System.out.println("500");
                break;
            case 3:
                System.out.println("100");
                break;
            default:
                System.out.println("-1");
                break;
        }
        System.out.println("end");
    }
1.2.2 其他数据类型
* switchchar类型变量 做等值判断
  
    private static void method6() {
        char rank = 'a';
        switch (rank) {
            case 'a':
                System.out.println("1000");
                break;
            case 'b':
                System.out.println("500");
                break;
            case 'c':
                System.out.println("100");
                break;
            default:
                System.out.println("-1");
                break;
        }
    }
    
/*
     * 对String类型的变量 做等值判断
     * 小括号中表达式的值的数据类型只能是 byte short char int 包装类型,String,enum (枚举类型)
*/
    private static void method7() {
        String rank = "1";
        // byte short char int 包装类型,String,enum (枚举类型)
        switch (rank) {
            case "1":
                System.out.println("1000");
                break;
            case "2":
                System.out.println("500");
                break;
            case "3":
                System.out.println("100");
                break;
            default:
                System.out.println("-1");
                break;
        }
    }

switch和多重if区别:

  • 区间判断用多重if
  • 等值判断使用switch