iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java 不同版本的 Switch语句
  • 512
分享到

Java 不同版本的 Switch语句

2024-04-02 19:04:59 512人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录旧的Java Switch语句新的Switch语句Java Switch表达式的收益率结论前言: 自Java13以来,Switch表达式被添加到Java核心库中。如果您使用的是J

前言:

自Java13以来,Switch表达式被添加到Java核心库中。如果您使用的是Java版本13或更高版本,那么您肯定可以将旧Switch转换为新Switch。

本文将讨论它如何在不破坏现有更改的情况下提供某些功能。当然,其他语言用户可能会评论“多年前,它就已经存在于我们的编程语言中了”。但让我们微笑一下,继续用Java编程,好吗?注意,我将在帖子中交替使用“switch expression”和“switch statement”,所以请记住,我想说的是同一件事。

旧的Java Switch语句

switch语句将以更可读、更简洁的方式(并非每次)替换单个变量的if-else-if梯形图。是的,我知道,这不是一个精确的定义。

让我们看一个实际的例子。假设你按下了一个按钮,并且有了特定的按钮代码,你需要有一些与之相关的命令。现在,您可以执行第一块中显示的if-else-if梯形图,或者将其转换为第二块中显示的开关表达式:

if(button == 1) {
    command = "on";
}
else if(button == 2){
    command = "off";
} 
else if(button == 3 || button == 4) {
    command = "ring";
}
else{
   throw new RuntimeException("Wrong Button Code"); 
}

switch表达式:

switch(button){
    case 1:
        command = "On";
    break;
    case 2:
        command = "off";
    break;
    case 3:
    case 4:
        command = "ring";
    break;
    default:
        throw new RuntimeException("Wrong Button Code");
}

正如你所见,这个switch即使我们减少了条件检查,我们也必须添加很多额外的代码,比如break语句。这就是新的Java Switch语句或表达式帮助我们的地方。与其说是一个新的,不如说是一个“更新的开关表达式”。但无论如何,让我们看看。

新的Switch语句

在新的switch语句中,您将看到的第一件事是,您根本不必编写break语句。要做到这一点,你必须使用箭头->,我们在lambda中使用的箭头,来告诉这个案例的开始。至于实际的代码块,可以将其设置为一行表达式,也可以在代码块周围使用一个花括号。

此外,对于不同case的相同评估,您不需要多次编写case语句,您可以用逗号分隔它们(例如,上例中的case3和case4)。

switch(button){
    case 1 ->  command = "on"; // on liner
    case 2 -> {
        // do something
        command = "off"; //  a block with curly brackets
    }
    case 3, 4 -> command = "ring"; //  case can be combined with a comma
    default -> throw new RuntimeException("Wrong Button Code");
}

看看代码变得多么简洁。不需要额外的中断声明。此外,可以在不重复关键字的情况下组合案例。但等等,不是这样的。关于这个更新的Java switch语句,还有一件事。

Java Switch表达式的收益率

我们可以从switch语句中得到一个结果。简单地说,您只能从开关块返回特定的内容。它对switch语句使用Java13新添加的yield关键字。这只不过是对开关的回报。举个例子你会更好地理解。

假设在上面的例子中,我们为每种情况都修改了命令变量。现在,我们可以直接从特定情况返回特定字符串,并将其分配给命令,而不是对同一变量进行变异。你可以同时使用“冒号大小写”或“箭头大小写”。让我们看看如何。

箭头case ->

String command = switch(button){
    case 1 -> {
        yield "on"; 
    } 
    case 2 -> {
       yield "off";
    }
    case 3,4 ->  {  // multiple case
        yield "ring";
    }
    default -> throw new RuntimeException("Wrong Button Code");
};

冒号case:

String command = switch(button){
    case 1:
        yield "on";
        // no break should be used
    case 2:
        yield "off";
    case 3:
    case 4:
        yield "ring";
    default:
        throw new RuntimeException("Wrong Button Code");
};

使用switch时请记住这几点:

  • 不能在一个switch语句中交替使用冒号和箭头大小写。
  • 从箭头框中得出结果时,必须将其写在花括号中。
  • 从冒号case中生成结果时,不要使用break关键字。
  • 建议在使用yield时使用箭头框。

结论

java的switch语句或表达式不如KotlinScala的switch表达式强大,但我认为我们可以看到它在不久的将来在Java中变得更加强大。在那之前,让我们试着在代码中使用这个东西。

到此这篇关于Java 不同版本的 Switch语句的文章就介绍到这了,更多相关Java Switch语句内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java 不同版本的 Switch语句

本文链接: https://www.lsjlt.com/news/151019.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java 不同版本的 Switch语句
    目录旧的Java Switch语句新的Switch语句Java Switch表达式的收益率结论前言: 自Java13以来,Switch表达式被添加到Java核心库中。如果您使用的是J...
    99+
    2022-11-13
  • Java不同版本的Switch语句实例分析
    这篇文章主要讲解了“Java不同版本的Switch语句实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java不同版本的Switch语句实例分析”吧!旧的Java Switch语句sw...
    99+
    2023-07-02
  • Java中的Switch语句
    1.switch语句格式 switch(表达值){ --首先计算表达式的值 switch(想吃的水果){ case 值1: --与case值对比 case “苹果”; 语句体1; ...
    99+
    2023-10-11
    java 开发语言 jvm
  • java中的switch case语句的用法
    本篇内容主要讲解“java中的switch case语句的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java中的switch case语句的用法”吧!s...
    99+
    2022-10-19
  • 理解Java中的switch分支语句
    在程序中遇到多分支选择的时候,想必大家都喜欢用if...else if...else...语句,尤其是初学者,因为在了解switch语句之前,我也是只会用if...else语句。那么现在看完这篇随笔的介绍后,你们又有了另外一种选择,使用sw...
    99+
    2023-06-02
  • java中switch语句的用法介绍
    本篇文章和大家了解一下java中switch语句的用法介绍。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。一. switch分支结构1. 简介switch结合case,能够判断一个变量或表达式与一系列值中的某个值是否相等,...
    99+
    2023-07-06
  • java中switch语句的作用是什么
    java中switch语句的作用是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应...
    99+
    2023-06-14
  • java switch语句的执行过程是什么
    这篇文章主要介绍“java switch语句的执行过程是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java switch语句的执行过程是什么”文章能帮助大家解决问题。1、语法switch(常...
    99+
    2023-06-30
  • JAVA JDK不同版本对JFrame的支持
        最近,一新手学习JAVA,其摸索到了JFrame,在使用中遇到了一个问题,就是JDK1.8对JFrame的set方法不完全支持。环境信息:操作系统:DELL 7470/windows 7 X86_64开发平台:M...
    99+
    2023-06-02
  • java中switch和if语句的区别是什么
    这期内容当中小编将会给大家带来有关java中switch和if语句的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程...
    99+
    2023-06-14
  • java中switch语句的执行过程是什么
    今天就跟大家聊聊有关java中switch语句的执行过程是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编...
    99+
    2023-06-14
  • Java判断语句if…else/switch的实例用法
    这篇文章主要介绍“Java判断语句if…else/switch的实例用法”,在日常操作中,相信很多人在Java判断语句if…else/switch的实例用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Jav...
    99+
    2023-06-02
  • 聊聊PHP switch语句中不使用break的情况
    在PHP中使用switch语句来进行多个分支的选择是很常见的,通常在每个分支结束后会使用break语句来退出switch语句。然而,有些情况下我们不想使用break语句,本文将介绍在PHP switch语句中不使用break的情况。为什么不...
    99+
    2023-05-14
    php switch break
  • Python中不支持 switch 语句的原因是什么
    这期内容当中小编将会给大家带来有关Python中不支持 switch 语句的原因是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、switch 是什么switch 的语法格式如下:switch(ex...
    99+
    2023-06-16
  • C语言中switch语句基本使用的方法有哪些
    今天小编给大家分享一下C语言中switch语句基本使用的方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。switch...
    99+
    2023-07-05
  • Hybris怎么维护同一个文本基于不同语言的版本
    本篇内容主要讲解“Hybris怎么维护同一个文本基于不同语言的版本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Hybris怎么维护同一个文本基于不同语言的版本”吧!i18n(其来源是英文单词 ...
    99+
    2023-06-04
  • PHP switch语句中不使用break的情况是什么
    这篇文章主要讲解了“PHP switch语句中不使用break的情况是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP switch语句中不使用break的情况是什么”吧!为什么不使...
    99+
    2023-07-05
  • SQLPS不同版本的差异
    服务器上装了SQL Server 2014的默认实例,以及SQL Server 2017的命名实例SQL2017$env:PSModulePath为%SystemRoot%\system32\Windows...
    99+
    2022-10-18
  • 不同版本mysql-connector-java的jar包下载地址
    jar包下载方式 官网地址:MySQL :: Download Connector/J,如果你打不开官网,在下面我为你准备了直接下载jar包的链接地址。 在选择操作系统时,此处选择platform independent(独立于平台)。 ...
    99+
    2023-09-03
    jar java mysql
  • golang中一种不常见的switch语句写法示例详解
    最近翻开源代码的时候看到了一种很有意思的switch用法,分享一下。 注意这里讨论的不是typed switch,也就是case语句后面是类型的那种。 直接看代码: func (s ...
    99+
    2023-05-18
    golang switch语句写法 golang switch写法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作