当前位置: 首页 > news >正文

Java小白入门到实战应用教程-switch case条件语句

前言

在前面的章节中我们掌握了if else的条件语句,在java中除了if else外其实还有一种特殊形式的条件语句,也就是我们今天要学习的switch case。

switch case条件语句相对来说没有if else那么灵活,但也是我们必须掌握的知识点之一。

在某些情况下,switch能使得代码更加的简洁,逻辑更加清晰。

正文

switch case条件语句的条件只接收一个变量值,然后根据这个值,然后去执行对应的逻辑。

语法:

switch(expression){case value1 ://语句break; //可写可不写case value2 ://语句break; 可写可不写//你可以有任意数量的case语句default : //可写可不写//语句
}

其中expression表达式就是接收的那个条件,只是一个变量值,这个变量的类型可以是: byte、short、int 或者 char,从JAVA7开始也支持接收String类型的值了。

整体的逻辑是,判断当expression的值匹配到哪个value的时候,去执行对应case下的代码逻辑,当所有的case中的value都没匹配到的时候,就执行default下的逻辑。

所以使用switch case的时候,通常知道有哪几种value。

代码样例:

public class One {public static void main(String[] args) {int a = 1;switch (a){case 0:System.out.println(0);break;case 1:System.out.println(111);break;case 2:System.out.println(222);break;default:System.out.println(1230);}}
}

解释:

我们先定义了一个int型变量a的值为1.

然后在switch case结构中接收变量a,在switch case结构中,当接收的a的值为0的时候打印数字0,当接收的a的值为1的时候打印数字111,当接收的a的值为2的时候打印数字222,当接收的a的值都不是0,1,2的时候打印数字1230,

因为我们a的值为1,所以这段代码会在控制台打印111.

break关键字在switch case中的作用

break关键字我们在前面循环结构中已经使用到了,在循环结构中它的作用是结束循环。

那在switch case中的作用同样是结束这个条件语句,在上面的样例代码中,我们可以看到在所有的case中的最后都写了break关键字,所以当条件a对一个的case执行完毕后,整个switch case就结束了。

当没有break关键字的时候,程序会从匹配到的case开始,继续执行下面所有的case和default代码,直到遇到break关键字或者switch case末尾。

代码样例:

public class One {public static void main(String[] args) {int a = 0;switch (a){case 0:System.out.println(0);case 1:System.out.println(111);case 2:System.out.println(222);break;default:System.out.println(1230);break;}}
}

我们将上面的样例简单修改了一下,去掉了case 0 和case 1中的break关键字。所以当a的值为0的时候,进入到这段switch case条件判断,首先匹配到第一个case,然后会打印0,但是case 0得代码块没有break关键字结尾,所以会继续往下执行直到遇到break关键字或者switch case末尾。

所以这段代码的结果会打印0、111、222.

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 图片等比例缩放方案
  • 2235234234
  • 人工智能幻觉的成因分析和解决措施的挑战
  • Flink CDC基本概念以及MySQL同步到MySQL
  • 【C++】C++11新特性(1)
  • SpringCloud03
  • 深入解析Kylin的元数据管理:架构与实践
  • 树莓派物联网服务器搭建流程:集成 Node.js、InfluxDB、Grafana 和 MQTT 协议
  • 玄机 第一章 应急响应-linux入侵排查
  • 精品PPT | 微信云原生大数据平台构建及落地实践.pptx
  • 《计算机网络》(第8版)第七章 网络安全 复习笔记
  • MSPM0G3507之电赛小车
  • spark 3.0.0源码环境搭建
  • Lua编程
  • LinuxCentos中安装apache网站服务详细教程
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • CSS中外联样式表代表的含义
  • Java|序列化异常StreamCorruptedException的解决方法
  • Java面向对象及其三大特征
  • mockjs让前端开发独立于后端
  • Netty 4.1 源代码学习:线程模型
  • Selenium实战教程系列(二)---元素定位
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 关于字符编码你应该知道的事情
  • 规范化安全开发 KOA 手脚架
  • 汉诺塔算法
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 一道面试题引发的“血案”
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 湖北分布式智能数据采集方法有哪些?
  • ​业务双活的数据切换思路设计(下)
  • # Maven错误Error executing Maven
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (23)Linux的软硬连接
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (C#)获取字符编码的类
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • .NET Core 成都线下面基会拉开序幕
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .Net Web窗口页属性
  • .Net Web项目创建比较不错的参考文章
  • .NET 反射 Reflect
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .vue文件怎么使用_vue调试工具vue-devtools的安装