首页 > 编程语言 >Java-选择结构

Java-选择结构

时间:2024-11-26 21:29:53浏览次数:10  
标签:case 语句 Java System else 选择 println 结构 out

选择结构

分类

选择结构分为 if选择结构 和 switch选择结构

if选择结构

其中if选择结构又分为

  • if单选择结构
  • if双选择结构
  • if多选择结构
  • 嵌套的if结构

if单选择结构

我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示

// 语法:
if(布尔表达式){
    // 如果布尔表达式为true 将执行的语句
}
Scanner scanner = new Scanner(System.in);

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

        // equals  用于判断字符串是否相等
        if (str.equals("Hello")){
            System.out.println(str);
        }

        System.out.println("End");
        scanner.close();

if双选择结构

if双选择结构 if…else…

// 语法:
    if(布尔表达式){
        // 如果布尔表达式为true 将执行的语句
    }else{
        // 如果布尔表达式为false 将执行的语句
    }
// 考试成绩score 大于等于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();

if多选择结构

如果要判断考试成绩的等级,那么if双选择结构是不能完成的,它存在区间多级判断。比如100-90为A,90-80为B…所以就有了 if多选择结构

// 语法:
	if(布尔表达式1){
         // 如果布尔表达式1的值为true 将执行的语句
    }else if (布尔表达式2){
        // 如果布尔表达式2的值为true 将执行的语句
    }else if (布尔表达式3){
        // 如果布尔表达式3的值为true 将执行的语句
    }else if (布尔表达式4){
        // 如果布尔表达式4的值为true 将执行的语句
    }else{
        // 如果以上布尔表达式都不为true 将执行的语句
    }
Scanner scanner = new Scanner(System.in);

        System.out.println("请输入你的分数:");
        int score = scanner.nextInt();

        if (score==100){
            System.out.println("恭喜你的成绩为满分S级");
        }else if (score<100 && score>=90){
            System.out.println("你的成绩等级为A级");
        }
        else if (score<90 && score>=80){
            System.out.println("你的成绩等级为B级");
        }
        else if (score<80 && score>=70){
            System.out.println("你的成绩等级为C级");
        }
        else if (score<70 && score>=60){
            System.out.println("你的成绩等级为D级");
        }
        else if (score<60 && score>=0){
            System.out.println("你的成绩等级为F级,也就是不及格!!!");
        }else {
            System.out.println("请输入正确的成绩");
        }

        scanner.close();

嵌套的if结构

使用嵌套的if…else…语句是合法的

你可以在另一个if 或 else if语句中使用if 或 else if 语句

// 语法:
	if (布尔表达式1){
       // 如果布尔表达式1的值为true 将执行的语句
        if(布尔表达式2){
            // 如果布尔表达式2的值为true 将执行的语句
        }
    }

注意

  1. if 语句至多有1个else语句,else语句 在所有的else if 语句后面
  2. if 语句可以有若干个else if 语句,他们必须在else 语句之前
  3. 一旦其中一个else if 语句检测为 true ,其他的 else if 语句 以及 else 语句都将跳过执行

switch选择结构

多选择结构还有一个实现方法 就是 switch case 语句

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支

// 语法:
	switch(expression){
        case value:
            // 语句
            break;  // 可选
        case value:
            // 语句
            break;  // 可选
        case value:
            // 语句
            break;  // 可选
    	// 可以有任意数量的 case语句
        default:  // 可选
            // 语句
    }
// case 穿透  // switch 匹配一个具体的值
        char grade = 'A';

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

switch 的变量类型可以是

  • byte,short,int,char
  • 从Java SE 7(JDK7) 开始
  • switch 支持 字符串String 类型了
  • 同时 case 标签必须为字符串类型或字面量
String str = "陕西";
        // JDK7 的新特性,表达式结果可以是字符串
       
        switch (str){
            case "河北":
                System.out.println("这么近那么美,周末到河北");
                break;
            case "河南":
                System.out.println("这么近那么美,周末到河南");
                break;
            case "河西":
                System.out.println("这么近那么美,周末到河西");
                break;
            case "河东":
                System.out.println("这么近那么美,周末到河东");
                break;
            default:
                System.out.println("太冷了,不去了");
        }

反编译 java —> class(字节码文件) —> 反编译(IDEA)

字符的本质还是数字

编译文件

// 这是 .class 字节码文件
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.h.struct;

public class SwitchDemo02 {
    public SwitchDemo02() {
    }

    public static void main(String[] args) {
        String str = "陕西";
        byte var3 = -1;
        switch(str.hashCode()) {
        case 882633:  // 字节码
            if (str.equals("河东")) {
                var3 = 3;
            }
            break;
        case 883908:
            if (str.equals("河北")) {
                var3 = 0;
            }
            break;
        case 883972:
            if (str.equals("河南")) {
                var3 = 1;
            }
            break;
        case 897836:
            if (str.equals("河西")) {
                var3 = 2;
            }
        }

        switch(var3) {
        case 0:
            System.out.println("这么近那么美,周末到河北");
            break;
        case 1:
            System.out.println("这么近那么美,周末到河南");
            break;
        case 2:
            System.out.println("这么近那么美,周末到河西");
            break;
        case 3:
            System.out.println("这么近那么美,周末到河东");
            break;
        default:
            System.out.println("太冷了,不去了");
        }

    }
}

标签:case,语句,Java,System,else,选择,println,结构,out
From: https://blog.csdn.net/m0_75024203/article/details/144068649

相关文章

  • Java基础-scanner对象
    scanner对象next():一定要读取到有效字符后才可以结束输入对输入有效字符之前遇到的空白,next()方法会自动将其去掉只有输入有效字符后才将其后面输入的空白作为分隔符或结束符next()不能得到带有空格的字符串//创建一个扫描器对象,用于接收键盘数据Scannerscanner=......
  • Java进阶六-多线程
    一多线程相关概念进程(Process):进程是程序的基本执行实体。进程是操作系统分配资源的基本单位。每个进程都有自己的内存空间、代码段、数据段等。进程之间相互独立,一个进程的崩溃不会影响其他进程。进程是程序的基本执行实体。线程(Thread): 应用软件中相互独立,可以......
  • java面向对象知识点: 封装,构造,重载
    目录封装封装知识点private(私有)public(公共) 二、getter和setter方法getter方法(访问器方法)setter方法(修改器方法)三、封装类的设计原则单一职责原则高内聚性一.Java为什么要封装?一、数据隐藏与安全性保护数据不被随意访问防止外部干扰二、提高代码的可维......
  • JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化
    目录JavaScript中通过Array.sort()实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)一、为什么要使用Array.sort()二、Array.sort()的使用与技巧1、基础语法2、返回值3、使用技巧三、Array.sort()的复杂用法与实际......
  • 职场生存指南 | Java程序员入职新公司 (干货盛宴 !!!)
    目录一、拿到需求无从下手?二、程序员如何在职场上少走弯路?三、职场生存之道四、初入职场小白常犯的几大错误五、职场上遇到甩锅PUA怎么反击?Hello,大家好呀,我是小斜同学。最近有小伙伴反馈说成功入职了新公司,但是拿到需求以后不知道该怎么来做,感觉到无从下手,力不从心。......
  • 防范信息流过载不仅是减少信息的数量,更在于提升对信息的处理能力和选择性。通过设定信
    信息流过载(informationoverload)是指个体面对大量、快速流动的信息时,感到无法有效处理、消化或应用这些信息,导致决策困难、压力增加和工作效率下降。现代社会的信息量庞大,尤其在数字化时代,信息流过载已成为普遍的挑战。要有效防范信息流过载,可以采取以下策略:1. 设定信息消费的边......
  • JAVA_RMI(理论篇)
    前言之前对rmi模模糊糊的,这次好好看看吧。如有错误,恳请指出代码结构RMI中有三个角色rmi客户端rmi注册中心rmi服务端(在jdk高版本必须和rmi注册中心在同一台主机)rmiServerInterface接口packagecom.Rmi;importjava.rmi.Remote;importjava.rmi.RemoteException;p......
  • 差旅费报销管理信息系统(2022java期末考试练习)
    2.系统要求与评分标准:2.1页面要求(1)系统可以通过浏览器直接访问;(1分)(2)各个功能页面整体风格统一;(3)首页为用户登录页面,职员、职员经理、总经理、财务人员四种角色用户登录后,进入相应的功能页,只能看到角色允许访问功能模块,用户登录界面包含用户、密码两个文本框,以及登录按钮;(4分)(4)职......
  • 每日OJ_牛客_MT2棋子翻转_模拟_C++_Java
    目录牛客_MT2棋子翻转_模拟题目解析C++代码Java代码牛客_MT2棋子翻转_模拟棋子翻转_牛客题霸_牛客网描述:在4x4的棋盘上摆满了黑白棋子,黑白两色棋子的位置和数目随机,其中0代表白色,1代表黑色;左上角坐标为(1,1),右下角坐标为(4,4)。现在依次有一些翻转操作,要对以......
  • 差旅费报销管理信息系统进度1(2022java期末考试练习)接上题目
    目前做了第一个表出差申请的增删改查项目结构mapper中放sql语句service写函数定义web写具体servlet操作前端用html+jsp......