14

流程控制2

IF

单选泽结构

public class IfDemo01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入内容:");
        String  x =scanner.nextLine();
        if (x.equals("Hello")){
            System.out.println("World");
        }
        System.out.println("End");





        scanner.close();

    }
}

双选择结构

public class IfDemo02 {
    public static void main(String[] args) {
//        考试分数大于等于60输出及格,否则不及格
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩:");
        int x =scanner.nextInt();
        if (x>=60){
            System.out.println("及格");

        }else System.out.println("不及格");





        scanner.close();
    }
}

多选择结构以及嵌套结构

import java.util.Scanner;

public class IfDemo03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩:");
        if (scanner.hasNextInt()) {
            int x = scanner.nextInt();

            if (x == 100) {
                System.out.println("满分");
            } else if (x >= 90 && x < 100) {
                System.out.println("A级");
            } else if (x >= 80 && x < 90) {
                System.out.println("B级");
            } else if (x >= 70 && x < 80) {
                System.out.println("C级");
            } else if (x >= 60 && x < 70) {
                System.out.println("D级");
            } else if (x >= 0 && x < 60) {
                System.out.println("不合格");
            } else {
                System.out.println("输入不合法");
            }

        } else System.out.println("输入不合法");
    }
}

嵌套结构里面可以继续嵌套

Switch

  • 多选择结构可以使用switch case语句

  • 判断一个变量与一系列值中某个值是否相等,每个值为一个分支。

  • switch语句中的变量类型可以是:

  1. byte、short、int或char

  2. 从Java SE 7开始

    switch支持字符串String类型了

  3. 同时case标签必须为字符串常量或字面量

public class SwitchDemo01 {
    public static void main(String[] args) {
        char grade = 'C';
        switch (grade){//选择一个具体的值
            case 'A'://case如不加break会造成case穿透
                System.out.println("优秀");
                break;//可选
            case 'B':
                System.out.println("良好");
                break;//可选
            case 'C':
                System.out.println("合格");
                break;//可选
            case 'D':
                System.out.println("不合格");
                break;//可选
            default://可选
        }
    }
}

当switch的变量为字符串时

java文件

public class SwitchDemo02 {
    public static void main(String[] args) {
        String name = "zkl";

//        JDK7后switch 可以用字符串为变量,表达式也可以是字符串
//        所有字符串的本质还是数字
//
//        反编译    java-->class(字节码文件)--->反编译(IDEA)
        switch (name){
            case "zkl":
                System.out.println("zkl");
                break;
            case "kkl":
                System.out.println("kkl");
                break;
            default:
                System.out.println("弄啥嘞");
        }
    }
}

来看看他的源码

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.kl.study.struct;

public class SwitchDemo02 {
    public SwitchDemo02() {
    }

    public static void main(String[] args) {
        String name = "zkl";
        byte var3 = -1;
        switch(name.hashCode()) {
        case 106252:
            if (name.equals("kkl")) {
                var3 = 1;
            }
            break;
        case 120667:
            if (name.equals("zkl")) {
                var3 = 0;
            }
        }

        switch(var3) {
        case 0:
            System.out.println("zkl");
            break;
        case 1:
            System.out.println("kkl");
            break;
        default:
            System.out.println("弄啥嘞");
        }

    }
}
posted @ 2021-02-16 20:39  Rookik  阅读(110)  评论(0)    收藏  举报