学习
实践
活动
专区
工具
TVP
写文章

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

6

第6篇:Java基础-switch语句

我们从零开始学习大数据技术,从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

执行流程:

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

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

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

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

思考:

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

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

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、根据键盘录入的字符串,判断是否有满足要求的,如果有就输出否则,提示有误。

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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180405G1DY7800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券