从零开始学大数据-java基础-switch语句

     2022-03-28     203

关键词:


我们从零开始学习大数据技术,从java基础,到Linux技术涉猎,再深入到大数据技术的Hadoop、Spark、Storm技术,最后到大数据企业平台的搭建,层层递进,由点到面!希望技术大牛能过来指导学习。


上一节学习了流程控制语句,本节学习switch语句。

开始之前,我们先看一下上节的练习题。


一、练习题

if语句格式的练习:

1、获取两个数据中较大的值

2、判断一个数据是奇数还是偶数,并输出

技术分享图片

程序执行结果如下:

技术分享图片



二、switch语句


流程控制语句的选择结构

1
选择结构(也被称为分支结构)

选择结构有两种语句,分别为如下:

  • if 语句

  • switch语句

前面已经对if语句做了探讨,本节往下一起了解下switch语句


switch语句


switch语句格式:

switch(表达式){

case 值1:

语句体1;

break;

case 值2:

语句体2;

break;

...

default;

语句体n+1;

break;

}

格式的解释:

  • switch:表示这是switch选择结构

  • 表达式:这个地方的取值有限定的

byte,short,int,char

JDK5以后可以是枚举

JDK7以后可以是字符串

  • case:后面跟的是要和表达式进行比较的值

  • 语句体:要执行的代码

  • break:表示中断和结束的意思,可以控制switch语句的结束

  • default:当所有的值和表达式不匹配的时候,就执行default控制的语句,其实就相当于if语句的else


执行流程:

  1. 首先计算出表达式的值和case依次比较

  2. 一旦有对应的值,就执行相应的语句体

  3. 在执行的过程中,遇到break就会结束

  4. 最后,如果所有的case都和表达式的值不匹配,就会执行default中的语句体,程序结束





技术分享图片

思考:

  1. byte可以作为switch的表达式吗?

  2. long可以作为switch的表达式吗?

  3. String可以作为switch的表达式吗?

实例:

键盘录入一个数据,根据这个数据,我们输出对应的星期

  • 键盘录入1,对应输出星期一

  • 键盘录入2,对应输出星期二

  • ...

  • 键盘录入7,对应输出星期日


实例分析:

1、键盘录入,用switch实现

2、判断我们可以使用if语句,也可以使用switch语句

技术分享图片程序代码:

技术分享图片技术分享图片

技术分享图片


程序执行结果:

技术分享图片技术分享图片


技术分享图片


switch语句的注意事项:


1、
case 后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的


2、
default可以省略吗?
  • 可以省略,但是不建议,因为它的作用是对不正确的情况给出的提示。

  • 特殊情况:case就可以把值固定的(单选项),可以考虑把default给省略

3、
break可以省略吗?
  • 可以省略,不会报错,但是最终执行结果不是我们想要的,会出现case穿透现象。

  • 不建议省略。


4、

default一定要在最后吗?
  • 不是,可以在任意位置,但是建议在最后,否则汇产生case穿透。


5、

switch语句的结束条件


  • 遇到break就结束


switch注意事项-实例


下面我们针对相关实例看下注意实现的效果。

1、举例(同名case ID & 变量ID)

技术分享图片技术分享图片

技术分享图片技术分享图片

程序执行结果:

技术分享图片技术分享图片

  • 可见,case后面跟的必须是常量,不可以是变量,并且case后面的值不能相同。


技术分享图片


2、举例(省略default语句)

技术分享图片技术分享图片技术分享图片

技术分享图片程序执行结果:

技术分享图片技术分享图片

  • 可见,在swith语句中,default是可以省略的,但是最终会导致一些不正确的情况不被排除在外,可以正常输入。虽然省略default不会有报错,但不建议省略掉。


技术分享图片


3、举例(省略break)

技术分享图片技术分享图片技术分享图片

技术分享图片程序执行结果:

技术分享图片技术分享图片

  • 可见,在程序执行的时候,如果没有break进行程序中断,那么程序会依次按照顺序往下执行,直到遇到break才中止。虽然省略break不会有报错,但不建议省略掉,否则程序打印的结果会有误。


技术分享图片


4、举例(default语句不放最后)

技术分享图片技术分享图片

技术分享图片技术分享图片

程序执行结果:

技术分享图片技术分享图片

  • 可见,如果default不放在最后,程序本身不会报错,但是最终执行的时候,会出现case穿透。


5、举例:(switch语句结束条件)

技术分享图片技术分享图片

程序执行结果:

技术分享图片技术分享图片

  • 可见,在语句x,y中的,遇到了break就直接结束语句输出;

  • 在语句a,b中,没有遇到break,则程序执行到最后才做输出。


扩展练习题(自行完成):

1、随便出一个选择题,通过键盘录入,根据我们的选择来给出你的选择结果。

2、根据键盘录入的字符串,判断是否有满足要求的,如果有就输出否则,提示有误。


本节我们就先告一段落,下一节我们将学习循环结构语句


往期文章:


从零开始学大数据-Java基础开篇(1)

从零开始学大数据-Java基础语法(2)

从零开始学大数据-Java运算符(3)

从零开始学大数据-Java基础-三元运算符/键盘录入(4)

从零开始学大数据-Java基础-流程控制语句(5)



技术分享图片


从0开始学大数据-java基础语法

我们从零开始学习大数据技术,从java基础,到Linux技术涉猎,再深入到大数据技术的Hadoop、Spark、Storm技术,最后到大数据企业平台的搭建,层层递进,由点到面!希望技术大牛能过来指导学习。上一节了解Java的发展史和基本操作... 查看详情

从0开始学大数据-java基础开篇

我们从零开始学习大数据技术,从java基础,到Linux技术涉猎,再深入到大数据技术的Hadoop、Spark、Storm技术,最后到大数据企业平台的搭建,层层递进,由点到面!希望技术大牛能过来指导学习。一、序言:2017年,这一年人才市场... 查看详情

从0开始学大数据-java基础-三元运算符/键盘录入

我们从零开始学习大数据技术,从java基础,到Linux技术涉猎,再深入到大数据技术的Hadoop、Spark、Storm技术,最后到大数据企业平台的搭建,层层递进,由点到面!希望技术大牛能过来指导学习。上一节了解Java运算符,其中三元运... 查看详情

从0开始学大数据-java运算符

我们从零开始学习大数据技术,从java基础,到Linux技术涉猎,再深入到大数据技术的Hadoop、Spark、Storm技术,最后到大数据企业平台的搭建,层层递进,由点到面!希望技术大牛能过来指导学习。上一节了解Java基础语法,本节我们... 查看详情

有java基础如何学习大数据?

...算机编程语言众多,常用的编程语言有Java,Python等,在开始学习大数据之前都会选择学习Java,那Java到底好在哪呢?为什么学大数据之前要先学Java呢?大数据人才越来越多的受到社会和企业的青睐,很多想要学习大数据的新人... 查看详情

大数据必学java基础(二十一):switch多分支结构介绍(代码片段)

文章目录Switch多分支结构介绍一、switch多分支结构(多值情况)二、练习Switch多分支结构介绍一、switch多分支结构(多值情况)语法结构:switch(表达式)  case值1:     语句序列1;     [break];  case值2:     语句序列2;     [... 查看详情

java基础12----switch语句(代码片段)

...witch语句仅能支持char,int,String,枚举类型的数据的判断switch结构:switch(数据)    case值:        条件满足时执行的语句        [break;]        case值2:        条件满足时执行的语句  ... 查看详情

全集大数据java基础

...据课程的学习奠定了坚实的语言基础。 适用人群1.想学大数据没有语言基础的学员2.想学大数据没有Java语言基础的学员3.转行想学大数据的学员4.了解Java,大数据Jav 查看详情

从零开始学kotlin-控制语句

从零开始学Kotlin基础篇系列文章条件控制-ifvara=10varb=20if(a>b)print(a)if(a>b){print(a)}else{print(b)}valmax=if(a>b)aelsebif(ain1..10){print("a在1到10区间内")}条件控制-whenvalx=3when(x){1->print("x是1")2->print(" 查看详情

有java基础,如何学习大数据,该怎么开始?

因为学大数据前期的基础课程就是java和linux.既然你有java基础就省去了学习者部分课程的基础,而且上手会容易很多! 再说说还需要学习哪些大数据技术,可以按我写的顺序学下去。我还是要推荐下我自己创建的大数据资料... 查看详情

从零开始——go语言基础语法

学习任何一门语言,都要学习好基础,把基础打牢,那些框架对你来说都是工具,你自己的基础好,懂得了他们的原理,自己就可以创造更优秀的框架。现在带大家学习GO语言的基础语法,让您的编程路上不迷茫。JetBrainsGoLand2020... 查看详情

jep361:switch表达式(代码片段)

...提升功能点。下面简单回顾一下switch的进化阶段:从Java5+开始,Java的switch语句可使用枚举了。从Java7+开始,Java的switch语句支持使用String类型的变量和表达式了。从Java11+开始,Java的switch语句会自动对省略break导致的贯穿提示警告... 查看详情

从零开始学习javajava基础语法

  从公司裸辞一个月,原本工作是做VB的,现在想从事java;在找工作的时候总是要什么项目经验,多少有些不爽,所有语言都有共通性,我就不信java有这么难?给自己点时间来学习。坚持一个月自学,看看自己的努力究竟有... 查看详情

从零开始学java-day17(代码片段)

多线程编程的两种实现方式extendsThread优点:缺点:后续变化小,局限性大implementRunnable优点:多实现,更加灵活且解耦缺点:写法相对复杂,一些资源需要借助Thread多线程数据安全隐患怎么产生?线程的随机性+访问延迟以后如... 查看详情

从零开始学kotlin-基础语法

从零开始学Kotlin-基础语法(1)注释//单行注释/*多行注释*//***多行注释*/ 定义变量/常量变量定义:var关键字var<标识符>:<类型>=<初始化值> 常量定义:val关键字,只能赋值一次的变量(类似Java中final修饰的变量... 查看详情

从零学java笔录-第0篇

从零学java笔录-第0篇写在前面的话:一直想把自己学习java的过程分享出去,以前只是太懒,最近工作又太忙。好不容易国庆了,整理了自己从零开始学java的笔记。以后无论在忙努力坚持每天至少发一到两篇。希望自己可以坚持... 查看详情

从零开始学opendaylight之基础环境

Justdoit! CodeisKing!一、基础环境 0.VMware-workstation+ Ubuntu-16.04;      1.JDK配置:   下载链接: http://www.oracle.com/technetwork/java/javase/dow 查看详情

从零开始系列-r语言基础学习笔记之二数据结构

在上一篇中我们一起学习了R语言的数据结构第一部分:向量、数组和矩阵,这次我们开始学习R语言的数据结构第二部分:数据框、因子和列表。一、数据框类似于二维数组,但不同的列可以有不同的数据类型(每一列内的数据... 查看详情