关于java选择结构switch及反编译

京东面试题:Java中的Switch中的case后可否使用String?为什么? 京东面试题:Java中的Switch中的case后的量可否使用String,为什么?这个问题在Java开发中经常会遇到,也是面试中经常被问到的问题。本文将详细解答这个问题,帮助你更好地理解Java中的Switch语句。 阅读详情

关于java选择结构switch及反编译

在上一篇文章中,我们了解了选择结构中的if else等,本章内容让我们说明一下上一篇文章中的伏笔,switch选择结构🤔

switch多选择结构

  • 多选择结构:多选择结构除了else if ,就是我们要介绍的switch case😀
  • 分支:switch case 语句判断一个变量与一系列值中的某一个值是否相等,每一个值都是称为一个分支。
  • switch语句中可以是 byte 、short、int、char类型,自JavaSE7开始,也支持String字符串类型了,下面会介绍到😎
  • switch case使用方式:
switch(expression)
{
    case value:
         //语句
         break;  //可以不选
    case value:
         //语句
         break;  //可以不选
    case value:
        //语句
        break;   //可以不选
    //可以有任意的case语句
    default:    //可以不选
        //语句           
}
  • 我们看到上面代码注释中有可以不选的注释,下面会详细的说明。
  • break是结束标志,如果有break就不会向下继续走了,代表终止了switch。
  • default和else类似,是在所有判断之后。
  • switch多选择结构实例说明

我们声明一个char类型的变量,然后用switch判断这个变量的级别。

public class Demo 
{
    public static void main(String[] args) 
    {
        char grade='C';
        
        switch(grade)
        {
            case 'A':
                System.out.println("优秀");
                break;
            case 'B':
                System.out.println("良好");
            case 'C':
                System.out.println("及格");
            case 'D':
                System.out.println("请再接再励!");
            case 'E':
                System.out.println("挂科");      
            default:
                System.out.println("未知等级");                
        }
    }
}

我们执行一下代码,我们会发现,C满足了及格的条件,但是并没有只输出了及格,还输出了下面代码中的语句。

及格
请再接再厉!
挂科
未知等级
    
进程结束......    

所以,这里就说明了break的重要性,虽然这个可以不去写出来,程序也可以运行,但是break一定要写出来!我们在以后的工作中,平时的代码书写中,要养成好的习惯,在case的时候,直接把break写出来。

  • 我们发现,不写出break,没有终止标志,就会一直向下运行,这种现象就是叫做case穿透。
public class Demo 
{
    public static void main(String[] args) 
    {
        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("未知等级");                
        }
    }
}

这样输出的结果,就是只有满足符合的条件的时候,输出的语句。

及格

我们在这里,还会有一些疑问,就是switch和 if 都是选择结构,但是什么时候用哪个选择是最好的呢🤔

if 多用于判断区间,switch 多用于判断具体的值

反编译

因为java是源文件,经过编译,生成class文件,在通过解释,给到操作系统平台,我们现在要对class文件进行反编译。

首先我们用刚刚学到的switch,写一段代码。

public class Demo
{
    public static void main(String[] args)
    {
        String name="落满樱花的羊";
        switch (name)
        {
            case "落满樱花":
                System.out.println("NO");
                break;
            case "落满樱花的":
                System.out.println("NO");
                break;
            case "落满樱花的羊":
                System.out.println("Yes");
                break;
            default:
                System.out.println("内容错误");
        }
    }
}

我们用的工具是Idea,所以,下面的反编译演示也是用Idea进行演示的,当然也有很多其他的反编译工具😀

1、首先,我们先编译运行一下这段代码,让它去生成class文件。

在这里插入图片描述

输出的结果为YES,已经编译好了,我们就可以去找它的class文件了😎

2、点击文件,找到项目结构,打开。

在这里插入图片描述

3、复制路径在 我的电脑 中输入。

在这里插入图片描述

在这里插入图片描述

4、进入文件夹后,我们可以看到production文件夹,点击去,可以看到项目名字(我的项目名字叫One😊),根据自己建立的包,找到对应的类文件的编译后的class文件。

在这里插入图片描述

5、找到后,我们在Idea项目目录中,找到刚刚的这个类,然后右键,选择打开于资源管理器。

在这里插入图片描述

6、打开以后,我们将刚刚的class文件,复制粘贴过去,像这样。

在这里插入图片描述

7、我们再打开idea的时候,就会发现刚刚的包中,多了一个不一样图标的文件,这个就是class文件。

在这里插入图片描述

8、双击文件打开,就可以看到反编译的源码了。

在这里插入图片描述

反编译的作用

  • 查看源代码:反编译工具可以将字节码文件转换为与原始源代码相似的Java代码。这对于开发人员来说非常有用,因为他们可以查看和理解其他人编写的代码,或者在没有源代码的情况下进行代码分析。
  • 调试和修复问题:当遇到问题时,反编译工具可以帮助开发人员快速定位和修复代码中的错误。通过查看反编译后的源代码,开发人员可以更容易地理解代码的逻辑和执行流程,从而更好地进行调试和修复。
  • 学习和教学:反编译工具可以帮助初学者学习和理解Java编程语言。通过查看反编译后的源代码,初学者可以更好地理解Java语法和编程规范,并从中学习编程技巧和最佳实践。
  • 代码审查和安全性分析:反编译工具可以用于代码审查和安全性分析。通过查看反编译后的源代码,开发人员可以检查代码是否存在潜在的安全漏洞或不良编码实践,并采取相应的措施进行修复和改进。
腾讯会议录屏损坏修复:使用 recover_mp4 工具的完整解决方案 腾讯会议录屏损坏修复指南 当腾讯会议录屏因电脑蓝屏等意外导致MP4文件损坏时,可使用recover_mp4工具结合FFMPEG进行修复。操作步骤包括:1)准备相同参数正常视频作为参考;2)分析正常视频生成结构文件;3)分离损坏视频的音视频流;4)使用FFMPEG重新封装。该方法能有效修复因意外中断导致的视频索引损坏问题。修复前需将工具和文件放在同一目录下,并确保参考视频与损坏录屏的参数完全一致。 阅读详情

相关推荐

告别Colmap!在ROS2 Humble上,用Fast-LIVO2直接为3D Gaussian Splatting准备数据全流程

本文详细介绍了在ROS2 Humble环境下,使用Fast-LIVO2为3D Gaussian Splatting(3DGS)准备数据的全流程。通过优化Fast-LIVO2配置、实时数据同步机制和3DGS训练参数,显著提升了三维重建效率和质量,相比传统Colmap流程节省95%以上的预处理时间。适用于Ubuntu22.04系统,适合机器人及自动驾驶领域的三维重建应用。

weixin_28688385的博客 586

Java switch使用

Java switch使用

weixin_44326073的博客 1443

CodeBuddy 接入 MCP,一键生成网站!

2024 年 11 月,Anthropic 公司搞了个挺有意思的新玩意 - Model Context Protocol(模型上下文协议)简称为 MCP 协议。简单来说,它就是给 AI 和各类工具数据之间搭了个标准化的”桥梁”,让开发者不用再为对接问题头疼了。mcp.so如下图所示,这是 mcp.so 网站中的 MCP Server。使用百度/高德地图分析旅线计算时间接 Puppeteer 自动操作网页使用 Github/Gitlab 让大模型接管代码仓库。

悟空聊架构的专栏 1943

java switch可以字符串吗

答案:可以 代码: // 在JDK7以后,switch中的表达式可以为字符串了 switch (myStr) { case "hello": System.out.println("resut:" + "hello √"); break; default: System.out.println("resut:" + "not found"); break; } ...

hello world 4422

UE5导入MetaHuman虚拟头像后,连接live link face,面部表情捕捉出错修正

UE5 利用live link face 驱动meta human面部表情捕捉

m0_53122690的博客 6594

Quanto option期权公式推导(更新中)

Quanto期权不同于以标的股票或资产的计价货币支付最终收益的普通欧式期权,它以另一种货币以预先确定的汇率支付最后的收益。以股票B的计价货币来计价的quanto看涨期权的收益为F0×max⁡(Sa(T)−K,0)×Sb(T)F_0 \times \max(S_a(T)-K, 0) \times S_b(T)F0​×max(Sa​(T)−K,0)×Sb​(T) 其中SaS_aSa​以货币A计价,SbS_bSb​以货币B计价,F0F_0F0​是预先固定的汇率. 假设上述股票均遵循几何布朗运动,可以得到以下恒等式

qq_41782124的博客 3683

Java 中的 switch 语句:类型支持与限制

在 Java 中,switch 语句是一种用于多分支选择的控制结构。从 Java 1.0 开始,switch 语句就支持了基本数据类型,而随着时间的推移,Java 不断扩展了 switch 语句的功能,支持了更多的数据类型。下面,我们来详细探讨一下 switch 语句在 Java 中的类型支持与限制。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 1万+

【目标检测】基于yolov5的水下垃圾检测(附代码和数据集,7684张图片)

【目标检测】基于yolov5的水下垃圾检测(附代码和数据集)

学无止境、积少成多、厚积薄发 4183

深入解析 Java 的 switch 语句

switch语句适用于对单个变量的多个可能值进行判断,代码更加简洁和清晰。使用break语句可以避免“穿透”问题。Java 12 引入的switch表达式使得switch语句更加简洁和功能强大。yield关键字在 Java 13 中被引入,用于从switch表达式的分支中返回值,使得代码更加灵活。理解并解决常见问题,可以更有效地使用switch语句。通过本文的详细介绍,希望你对 Java 的switch语句有了更深入的了解,能够在实际编程中灵活运用这一强大的控制流语句。

微笑听雨 8134

基于Simulink环境,提供一个关于如何对DC-DC变换器进行效率分析的仿真建模

效率定义:变换器效率通常定义为输出功率与输入功率之比,即 η=PoutPinη=Pin​Pout​​。重要性:高效率意味着更少的能量损失和更好的热管理,对于便携式设备、电动汽车等应用至关重要。挑战开关损耗:高频操作带来的开关器件损耗。导通损耗:电流流过电阻性元件(如MOSFET导通电阻)造成的能量损失。控制策略:优化控制算法以减少损耗。首先明确要模拟的任务内容。设计一个能够支持特定输入输出电压比的DC-DC变换器。根据工作频率和谐振元件值确定合适的电路参数。

xiaoheshang_123的博客 155

【史上最全面esp32教程】网络篇和tcp/ip的使用

ESP32史上最全面wifi和tcp/ip连接及示例程序

m0_62599305的博客 9520

Java的Switch选择结构与反编译

Switch多选择结构 多选择结构还有一个实现方式就是Switch case语句 switch case语句判断了一个变量与一系列值中某个值是否相等,每个值称为一个分支 语法如下 switch(){ case value: //语句 break; case value: //语句 break; default: ///语句 } switch语句中的变量类型可以是: byte,short,int,char 从java se7开始 switch 支持字符串String类型了(本质是转为hashcode

diyinhuanqian的博客 233

INFFUS 2025 | DDBFusion:基于双重分解和贝塞尔曲线的统一图像分解与融合框架

现有的图像融合算法大多集中于网络架构和损失函数的设计,采用统一的特征提取策略,却忽略了冗余信息和有效信息的划分。然而,对于互补信息而言,统一的特征提取器可能并不适用。因此,本文提出了一种基于贝塞尔曲线图像增强和分层分解的统一图像融合算法,并构建了一个自监督学习任务来学习有意义的信息。其中,贝塞尔曲线旨在模拟不同的图像特征,并构建特殊的自监督学习样本,因此作者的方法不需要特定任务的数据,并且可以在公共自然图像数据集上轻松进行训练。同时,作者的双重分解自监督训练方法可以为模型赋予冗余信息过滤能力。

小白学视觉 307

java语法-关于if选择结构和switch选择结构(顺带记录如何使用IDEA查看class反编译文件方法)

选择结构 if选择结构 if单选择结构 语法:if(布尔表达式){ ​ // 如果布尔表达式为true将执行的语句 } if双选择结构 语法:if(布尔表达式){ ​ // 如果布尔表达式的值为true ​ }else{ ​ // 如果布尔表达式的值为false ​ } package struct; import java.util.Scanner; public class

Kino_t的博客 472

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

switch选择结构

switch选择结构 switch匹配一个具体的值(跟if 最大的区别:从Java SE 7 开始,switch支持字符串String类型了) case:穿透,找到相对应的值,会继续向后输出知道结束 break:遇到break就会结束输出,也就是在用break挡住后面的值,后面的值都不会输出出来 default:如果前面的值都匹配不到,就会输出和defalut相对应的值 //case 穿透 //switch 匹配一个具体的值 char grade='C'; switch (grade){

Xun_independent的博客 238

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

switch多级选择结构和java字节码文件反编译

switch多级选择结构 多选择结构还有一个实现方式就是switch case语句。 switch case语句判断一个变量与一系列值中某个具体的值是否相等,每个值称为一个分支。 switch语句中的变量类型可以是:byte,short,int或者char,从java的jdk7版本开始,switch支持String类型 case标签必须为字符串常量或者字面量(即12345678abcd…类似) 遇到break就退出switch结构。 switch后跟的是一个一开始定义了的变量,而case后跟的是具体的字符

qq_43363066的博客 308

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Java流程控制之Switch选择结构与反编译如何查看

Java流程控制之Switch选择结构与反编译如何查看

qq_51976081的博客 237

Java流程控制--Switch多选择结构、反编译

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

qq_45028878的博客 307

JAVA流程结构(if选择结构、switch结构、IDEA反编译)

一、顺序结构 二、选择结构 1.if单选择结构 2.if双选择结构 3.if多选择结构 4.嵌套的if结构 5.switch多选择结构 注:没有break会出现case穿透现象。 IDEA反编译 *hashCode(哈希值)

SixPenceHu的博客 211

Java基础—流程控制—8switch多选择结构(拓展知识:反编译)

操作是:1直接在把文件夹中的class文件拖到idea中是可以的(out里面的class文件没了,路径直接改变了),2复制文件夹中的class文件到idea中不可以,会提示不允许创建class文件 3在文件夹中操作也可以(算是骚操作)2class文件的图标不一样,idea打开的“带锁”;Java文件---class文件(字节码文件:人看不懂)---反编译(工具:IDEA,给人看懂)一堆class文件:如果用notepad++打开,是一堆乱码,看不懂。不同点:1直接从IDEA中打开的自带高亮。

weixin_38735218的博客 996

Day09-01 P35 Java流程控制03:顺序结构 P36 Java流程控制04:if选择结构 P37 Java流程控制05:Switch选择结构

Day09-01 P35 Java流程控制03:顺序结构 P36 Java流程控制04:if选择结构 P37 Java流程控制05:Switch选择结构

jackyzhang202212的博客 377

15.Switch选择结构

从java SE 7开始 switch支持字符串String类型了。byte,short,int 或者char。同时case标签必须为字符串常量或字面量。

2401_87062211的博客 194

Day 7 顺序结构和选择结构

最简单的算法结构。

qq_51307478的博客 262

Day11- Java顺序结构和选择结构是什么?有哪些?

switch case语句从jdk7开始,switch支持字符串String类型case标签必须为字符串常量或字面量expression就是表达式,也可以是字符不写break,case就会穿透,把case后面的全部输出出来一般都要写breakcase 'A':break;default:System.out.println("未知");

weixin_48146444的博客 432

顺序结构和选择结构

注意 switch语句变量支持byte short int char 字符串String 类型。

bealwaysfun的博客 170

Switch多选择结构以及用IDEA反编译

Switch多选择结构 switch语句中的变量类型可以是: byte、short、int或者char。 从Java SE 7开始,switch支持字符串String类型了,同时case标签必须为字符串常量或者字面量。 //JDK7新特性,表达式结果可以是字符串! //字符的本质还是数字 switch (name) { case "小王": System.out.println("小王");

wyj2333的博客 311
上一篇: 关于java选择结构if和else详解
下一篇: 关于java循环结构while和do…while
落满樱花的羊
博客等级 码龄5年 1021粉丝 54原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值