15 选择结构(重要)

选择结构(重要)

if单选择结构

  • 很多时候需要判断一个东西是否可行,然后我们执行,这样的过程用If语句表示
  • 语法:
if(布尔表达式){
    //如果布尔表达式为true将执行的语句
}

image-20220502112007817

ifDemo01

package com.study.struct;

import java.util.Scanner;

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

        System.out.println("请输入内容:");
        String s =scanner.nextLine();

        //equals:判断字符串是否相等
        if(s.equals("Hello")){
            System.out.println(s);
        }
        System.out.println("End");
       scanner.close();
    }
}

image-20220502112600094

image-20220502112624512

if双选择结构

  • 现在有个需求,公司要收购一个软件,成功了,给人支付100万元,失败了,自己找人开发。这样的需求用一个if搞不定,我们需要有两个判断,需要一个双选结构,所以有了if-else结构
  • 语法
if(布尔表达式){
    //如果布尔表达式的值为true
}else{
    //如果布尔表达式的值为false
}

image-20220502112947935

ifDemo02

package com.study.struct;

import java.util.Scanner;

public class ifDemo02 {
    public static void main(String[] args) {
        //考试分数大于60就是及格,小于60分就是不及格
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入成绩:");
        int score = scanner.nextInt();

        if (score>60){
            System.out.println("及格");
        }else{
            System.out.println("不及格");
        }

        scanner.close();
    }
}

image-20220502153626800

image-20220502153700442

if多选择结构

  • 我们发现刚才的代码不符合实际情况,真实的情况还可能存在ABCD,存在区间多级判断。比如90-100就是A,80-90就是B等等,在生活中我们很多时候的选择也不仅仅只有两个,所以我们需要一个多选择结构来处理这类问题。
  • 语法
if(布尔表达式1){
    //如果表达式1为true执行代码
}else if(布尔表达式2){
    //如果布尔表达式2的值为true执行代码
}else if(布尔表达式3){
    //如果布尔表达式3的值为true执行代码
}else{
    //如果以上布尔表达式都为false执行代码
}

image-20220502154334468

ifDemo03

package com.study.struct;

import java.util.Scanner;

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

        System.out.println("请输入成绩:");
        int score = scanner.nextInt();

        if (score==100){
            System.out.println("恭喜满分!");
        }else if(score<100 && score>=90){
            System.out.println("优秀");
        }else if (score<90 && score>=80){
            System.out.println("良好");
        }else if (score<80 && score>=60){
            System.out.println("及格");
        }else{
            System.out.println("不及格");
        }

        scanner.close();
    }
}

没按老师来,超出范围的分数没考虑

嵌套的if结构

  • 使用嵌套的if...else语法是合法的,也就是说你可以在另一个if或者else if语句中使用if或者else if语句,你可以像if语句一样嵌套else if...else

  • 语法:

if(布尔表达式1){
    //如果布尔表达式1的值为true执行代码
    if(布尔表达式2){
        //如果布尔表达式2的值为true执行代码
    }
}
  • 思考:我们需要找一个数字在,1-100之间(涉及算法)

switch多选择结构

  • 多选择结构还有一个实现方式就是switch case语句
  • switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
  • switch语句中的变量类型可以是
    • byte、short、int、char
    • 从JavaSE7开始,switch支持字符串String类型了
    • 同时case标签必须为字符串常量或者字面量
switch(expression){
        case value;
        //语句
        break;//可选
        case value;
        break;
        //你可以有任意数量的case语句
        default;//可选
}

switchDemo01

package com.study.struct;

public class switchDemo01 {
    public static void main(String[] args) {
        //switch匹配一个具体的值
        //case穿透现象
        char grade = 'C';

        switch (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("未知");
                break;
        }
    }
}

image-20220502160948328

switchDemo02

package com.study.struct;

public class switchDemo02 {
    public static void main(String[] args) {
        String name = "狂神";
        //JDK7新特性,表达式结果可以是字符串
        //字符的本质还是数字

        //反编译 java--class(字节码文件)---反编译IDEA
        switch (name){
            case "清江":
                System.out.println("清江");
                break;
            case "狂神":
                System.out.println("狂神");
                break;
            default:
                System.out.println("弄啥嘞!");
        }
    }
}

image-20220502161418858

IDEA反编译

  • 项目输出的class文件所在

image-20220502162156182

image-20220502162608936

  • 直接打开是一堆乱码

image-20220502162519263

  • 拷贝到文件夹内

image-20220502162801256

  • IDEA自动反编译文件

image-20220502162900181

posted @   Ukiyo  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示