首页 > 编程语言 >秦疆的Java课程笔记:37 流程控制 switch选择结构

秦疆的Java课程笔记:37 流程控制 switch选择结构

时间:2023-11-23 16:24:20浏览次数:42  
标签:case Java 37 System break switch println out

  • 多选择结构还有一个实现方式就是switch case语句。
  • switch case语句判断一个变量与一系列值中某个值是否相等,每个值为一个分支。
  • if判断区间,switch匹配一个具体的值。
  • 语法:
switch(expression){
	case value :
		//语句
		break;//可选
	case value :
		//语句
		break;//可选
	//可以有任意数量的case语句
	default : //可选
		//语句
}
  • switch语句中的变量类型可以是:
    • byte,short,int,char
    • 从Java SE 7开始,switch支持字符串String类型
    • 同时case标签必须为字符串常量或字面量。
import java.util.Scanner;
public class SwitchDome1 {  
    public static void main(String[] args) {  
        Scanner scanner = new Scanner(System.in);  
        System.out.println("请输入等级:");  
        String grade = scanner.nextLine();  
        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("未知等级");  
        }
        scanner.close();  
    }  
}
====演示====
请输入等级:
C
及格
  • case穿透:上面的代码去掉几个break
import java.util.Scanner;
public class SwitchDome2 {  
    public static void main(String[] args) {  
        Scanner scanner = new Scanner(System.in);  
        System.out.println("请输入等级:");  
        String grade = scanner.nextLine();  
        switch (grade){  
            case "A" :  
                System.out.println("优");  
                break;  
            case "B" :  //删去了break
                System.out.println("良");  
            case "C" :  //删去了break
                System.out.println("及格");  
            case "D" :  
                System.out.println("再接再厉");  
                break;  
            case "E" :  
                System.out.println("挂科");  
                break;  
            default :  
                System.out.println("未知等级");  
        }
        scanner.close();  
    }  
}
====演示====
B
良    //这里输入B返回“良”之后,没有break语句,继续输出。
及格
再接再厉//直到“再接再厉”才有break语句。
  • 为了解释JDK7之后是如何支持String类型的,秦疆老师用IDEA打开了class文件,也就是字节码文件,他称这一过程叫反编译。接着展示了String类型是如果通过哈希值,而被switch语句支持。(虽然完全不明所以)
  • 在JDK21,通过秦疆老师的方法打开class文件,显示的代码与原本无异,看不到“哈希”字样。
  • 在菜单栏View选项下有一个Show Bytecode工具,点击后,也会出现字节码。但是和秦疆老师展示的完全不一样了,能看到“哈希”的字样,其他的就看不懂了。

标签:case,Java,37,System,break,switch,println,out
From: https://www.cnblogs.com/Acolyte/p/17851832.html

相关文章

  • Java Runtime (class file version 61.0), this version of the Java Runtime only re
    转: https://blog.csdn.net/qq_26898033/article/details/1289155001错误信息org/springframework/boot/maven/BuildInfoMojohasbeencopiledbyamorerecentversionoftheJavaRuntime(classfileversion61.0),thisversionoftheJavaRuntimeonlyrecogniz......
  • Java登陆第十二天——网络编程(一)网络的概念
    网络由两台或者更多的计算机组成的网络,称之为计算机网络。在同一个网络中,不同的计算机可以互相通信。因为他们使用的都是相同的协议。(通信:两台设备之间通过网络实现数据传输。)假设某处的一个计算机网络使用的网络协议为ABC。那么另一处网络协议为EFG的计算机网络,就无法与该A......
  • java 实现文件夹上传(springBoot 框架)
    java实现文件夹上传(springBoot框架)有时我们后台管理等服务可能会有这样一个简单需求,就是根据文件夹将整个文件夹下的所有资源都上传到我们的服务器上,本人也是搜索了大量资料,最终以最简单便捷的方式实现该功能,具体操作步骤如下一、前端如何设置上传组件并将资源上传到后台服务这......
  • SWITCH/Java switch case 语句
    SWITCHcaseswitch语句中的变量类型可以是:byte、short、int或者char。从JavaSE7开始,switch支持字符串String类型了,同时case标签必须为字符串常量或字面量。当变量的值与case语句的值相等时,那么case语句之后的语句开始执行,直到break语句出现才会跳出swit......
  • 秦疆的Java课程笔记:36 流程控制 if选择结构
    if单选择结构很多时候需要去判断一个东西是否可行,然后才去执行这丫那个一个过程在程序中用if语句来表示。语法:if(布尔表达式){ //如果布尔表达式为true将执行语句}importjava.util.Scanner;publicclassIfDemo1{publicstaticvoidmain(String[]args){......
  • Java读取文件-BufferedReader/FileReader/InputStreamReader/FileInputStream的关系和
    本文根据文章:https://blog.csdn.net/wjp0000/article/details/117771752进行修改一、Java读取和存储文件数据流Java读取文件,实际是将文件中的字节流转换成字符流输出到屏幕的过程这里面涉及到两个类:InputStreamReader和OutputStreamWriterInputStreamReader:将字节流转换成字......
  • java把数据批量插入iotdb
    packagecom.xlkh.kafka;importcn.hutool.core.collection.CollectionUtil;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONArray;importcom.google.common.collect.Lists;importcom.google.common.collect.Sets;importlombok.SneakyThrows;i......
  • Java8函数式接口, 方法引用, 构造器引用, 数组引用
    函数式(Functional)接口只包含一个抽象方法的接口,称为函数式接口。你可以通过Lambda表达式来创建该接口的对象。(若Lambda表达式抛出一个受检异常(即:非运行时异常),那么该异常需要在目标接口的抽象方法上进行声明我们可以在一个接口上使用@Functionallnterface注解,这样做可以检查......
  • 秦疆的Java课程笔记:35 流程控制 顺序结构
    Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。顺序结构是最简单的算法结构。publicclassShunXuDemo{publicstaticvoidmain(String[]args){System.out.println("hello1");System.out.println("hello2");......
  • 基于java+springboot的酒店预定网站、酒店客房管理系统
    该系统是基于Java的酒店客房预订系统设计与实现。是给师弟开发的毕业设计。现将源代码开放出来,感兴趣的同学可以下载。演示地址前台地址:http://hotel.gitapp.cn后台地址:http://hotel.gitapp.cn/admin后台管理帐号:用户名:admin123密码:admin123功能介绍平台采用B/S结构,后端采用主......