首页 理论教育 Java程序设计:选择结构语句

Java程序设计:选择结构语句

时间:2023-11-01 理论教育 版权反馈
【摘要】:后续为功能代码,当if语句的判断条件成立时,执行if后面的语句块1,如果不满足if条件,则执行else后的语句块2。else双分支结构替代。else多分支结构,在判断条件为false的前提下继续测试下一个条件。采用switch语句重新实现例2-11。default是可选的,作用类似于if条件语句中的兜底else{…

Java程序设计:选择结构语句

1.if语句

if语句包括三种语法格式,分别为if单分支结构、if…else双分支结构和if…else if…else多分支结构。

首先学习if…else双分支结构,语法格式为:

说明:if是该语句中的关键字,后续紧跟一对小括号,该对小括号任何时候都不能省略,小括号的内部是具体的条件,语法上要求该表达式结果为boolean类型。后续为功能代码,当if语句的判断条件成立时,执行if后面的语句块1,如果不满足if条件,则执行else后的语句块2。

if…else双分支结构流程图如图2-18所示。

图2-18 if…else双分支结构流程图

注意:

(1)if语句控制的语句块中如果只有一条语句,则可以省略一对大括号,否则需要用一对大括号将多条语句括在一起。建议即使语句块里只有一条语句,也不要省略大括号,这样整个程序的结构更加清楚。

(2)if…else语句实现了封闭的条件,else关键字的作用是“否则”,即条件不成立时的情况。

(3)在程序书写时,为了直观地表达包含关系,功能代码一般需要缩进。

如果if…else语句中只执行判断条件为true的语句块1,否则将跳过if语句执行后面的代码,则if…else语句简化为if单分支结构,语法格式为:

if单分支结构流程图如图2-19所示。

图2-19 if单分支结构流程图

注意:

在实际开发中,有些公司不使用if单分支结构,而用if…else双分支结构替代。因为if单分支结构是if…else双分支结构的特例,当判断条件不成立时,else中的代码块为{},不书写执行代码,这样做的目的是让条件封闭,非此即彼。

如果if…else语句中需要对判断条件结果为false的分支进一步细分判断,则会出现if…else if…else多分支结构。语法格式如下:

if…else if…else多分支结构流程图如图2-20所示。

图2-20 if…else if…else多分支结构流程图

注意:

(1)if…else if…else多分支结构执行流程:当判断条件1成立时,则执行语句块1;当判断条件1不成立且判断条件2成立时,则执行语句块2;如果判断条件1、判断条件2都不成立但判断条件3成立,则执行语句块3,依次类推,如果所有判断条件都不成立,则执行最后else分支的语句块n+1。(www.xing528.com)

(2)注意“else if”是else和if两个关键字,中间使用空格间隔;else if语句可以有任意多句;最后一个else分支为可选,不过,有的公司为了条件的封闭,最后一个else分支不能省,只不过语句块n+1里不写任何代码,即{}。

【例2-11】

随机产生一个分数,根据条件判断分数等级。分数高于或等于90,等级为A;高于或等于80,但是小于90,等级为B;高于或等于60,但是小于80,等级为C;剩下的为D。

分析:利用Math类的静态方法random()随机产生一个分数。

使用if单分支结构对该分数划分等级,程序如图2-21所示。

图2-21 if单分支结构实现

如果采用if…else if…else多分支结构实现,程序改写,如图2-22所示。

图2-22 if…else if…else多分支结构实现

对于if…else if…else多分支结构,在判断条件为false的前提下继续测试下一个条件。当前面的条件都不满足时,采用else{…}分支,将grade赋值为‘D’,条件封闭。

2.switch语句

switch语句也是一种很常用的选择结构语句,它由一个switch控制表达式和多个case关键字组成。switch语句的基本语法格式如下:

switch语句规则:switch语句根据控制表达式的值匹配case标签的值,从相匹配处开始执行,一直执行到break语句(用于结束switch语句)或者执行到switch语句末尾。如果控制表达式的值和所有case标签的值都不匹配,则进入default语句块执行(可选分支,如果存在就执行)。

说明:与if条件语句不同的是,switch语句的控制表达式结果类型必须是该JDK版本所支持的有限类型。JDK 1.7支持char、byte、short、int、enum(枚举)和String类型,而不能是if语句支持的boolean类型。

【例2-12】

采用switch语句重新实现例2-11。

分析:程序实现如图2-23所示。

图2-23 采用switch语句实现

注意:

(1)Java提供的switch语句格式比较整齐,但是,由于switch表达式语句是针对控制表达式的结果值判断的,和if语句相比,switch语句适应面窄。因此,switch语句一定可以改写成if语句,反之不一定。

(2)本例中,分数为77分,switch表达式的值为7,于是匹配到case 7,程序从匹配处一直执行到case 6语句块的break语句为止才跳出switch语句,我们把这种现象称为switch语句的向下贯通行为。

(3)default是可选的,作用类似于if条件语句中的兜底else{…}分支。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈