从零开始学大数据-Java基础-switch语句(6)

从零开始学大数据-Java基础-switch语句(6)


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


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

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


一、练习题

if语句格式的练习:

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

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

从零开始学大数据-Java基础-switch语句(6)

程序执行结果如下:

从零开始学大数据-Java基础-switch语句(6)



二、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中的语句体,程序结束





从零开始学大数据-Java基础-switch语句(6)

思考:

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

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

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

实例:

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

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

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

  • ...

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


实例分析:

1、键盘录入,用switch实现

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

从零开始学大数据-Java基础-switch语句(6)程序代码:

从零开始学大数据-Java基础-switch语句(6)从零开始学大数据-Java基础-switch语句(6)

从零开始学大数据-Java基础-switch语句(6)


程序执行结果:

从零开始学大数据-Java基础-switch语句(6)从零开始学大数据-Java基础-switch语句(6)


从零开始学大数据-Java基础-switch语句(6)


switch语句的注意事项:


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


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

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

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

  • 不建议省略。


4、

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


5、

switch语句的结束条件


  • 遇到break就结束


switch注意事项-实例


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

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

从零开始学大数据-Java基础-switch语句(6)从零开始学大数据-Java基础-switch语句(6)

从零开始学大数据-Java基础-switch语句(6)从零开始学大数据-Java基础-switch语句(6)

程序执行结果:

从零开始学大数据-Java基础-switch语句(6)从零开始学大数据-Java基础-switch语句(6)

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


从零开始学大数据-Java基础-switch语句(6)


2、举例(省略default语句)

从零开始学大数据-Java基础-switch语句(6)从零开始学大数据-Java基础-switch语句(6)从零开始学大数据-Java基础-switch语句(6)

从零开始学大数据-Java基础-switch语句(6)程序执行结果:

从零开始学大数据-Java基础-switch语句(6)从零开始学大数据-Java基础-switch语句(6)

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


从零开始学大数据-Java基础-switch语句(6)


3、举例(省略break)

从零开始学大数据-Java基础-switch语句(6)从零开始学大数据-Java基础-switch语句(6)从零开始学大数据-Java基础-switch语句(6)

从零开始学大数据-Java基础-switch语句(6)程序执行结果:

从零开始学大数据-Java基础-switch语句(6)从零开始学大数据-Java基础-switch语句(6)

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


从零开始学大数据-Java基础-switch语句(6)


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

从零开始学大数据-Java基础-switch语句(6)从零开始学大数据-Java基础-switch语句(6)

从零开始学大数据-Java基础-switch语句(6)从零开始学大数据-Java基础-switch语句(6)

程序执行结果:

从零开始学大数据-Java基础-switch语句(6)从零开始学大数据-Java基础-switch语句(6)

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


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

从零开始学大数据-Java基础-switch语句(6)从零开始学大数据-Java基础-switch语句(6)

程序执行结果:

从零开始学大数据-Java基础-switch语句(6)从零开始学大数据-Java基础-switch语句(6)

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

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


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

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

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


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


往期文章:


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

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

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

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

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



从零开始学大数据-Java基础-switch语句(6)