选择语句适合带有逻辑或关系比较等条件判断的计算。例如,判断是否到下班时间,判断两个数的大小等。Java中提供了两种选择语句:if语句和switch语句。其中,if语句又分为if语句、if…else语句、if…else if…else语句及嵌套语句。
1.if语句
if语句是指如果满足某种条件,就进行某种处理。语法如下:
条件表达式的结果为true,就执行代码块。否则,就不执行代码块。如:
上述代码的运行结果如下:
第3行代码定义了两个整型变量并赋值。第4~6行代码是一条if语句,条件表达式为a<b,即3<5成立,则执行代码块内的语句,即输出3<5。
如果将第4行代码中的“<”改为“>”,再运行结果,则什么都不输出。因为条件表达式a>b,即3>5不成立,故不执行代码块,即不执行输出语句。
2.if…else语句
if…else语句是指“如果×××成立”,就要……,“否则”就要……语法如下:
如果条件表达式成立,则执行代码块1;否则,就执行代码块2。如:
上述代码的运行结果如下:
第4~8行代码是一条if…else语句,条件表达式为逻辑表达式,第一个操作数是一个逻辑表达式,第二个操作数是一个关系表达式。先来看第一个操作数year%4==0&&year%100! =0,year%4==0,即1994%4==0为false,则year%4==0&&year%100! =0的结果为false,则整个条件表达式的结果为false,则执行else语句中的代码块,即执行第7行语句,输出“1994不是闰年,是平年”。
3.if…else if…else语句(www.xing528.com)
这是一条多条件判断语句,适用于条件较多的情况。语法如下:
这条语句以if开始,else结束,中间是若干个else if。表达式出现在if后面的小括号内。该语句也可以以if开始,else if结束,也就是可以没有else语句。该语句的执行流程为:判断条件表达式1,如果条件表达式1为true,则执行代码块1,语句结束。如果条件表达式1为false,则继续判断条件表达式2,如果条件表达式2为true,则执行代码块2,语句结束。否则,继续判断条件表达式3…如果所有的条件表达式都为false,则执行else中代码块n+1。if…else if…else语句的示例代码如下:
上述代码的运行结果如下:
该程序模拟了“判断成绩等级”:60分以下,为E等级;60~69分,为D 等级;70~79分,为C等级;80~89分为B等级,90分以上,为A 等级。第3行代码定义了一个整型变量score代表成绩,其值为89,使得第4行代码中的表达式89>90结果为false,则继续判断第6行代码中的表示式89>=80为true,则执行第7行代码,输出“level B”,程序结束。第6行代码中的表达式其实等价于score<90&&score>=80。另外,还要特别提醒,第4、6、8、10行代码中表达式的范围越来越大,如果把这几行的表达式颠倒过来,会怎么样呢?代码如下:
上述代码的运行结果为:
第3行代码中的score的值为89,使得第4行代码中的score>60,即89>60为true,则执行第5行代码,输出“level D”。所以,再次提醒,在使用if…else if…else语句时,表达式的范围从上至下依次变大。
4.switch语句
switch语句也是多条件判断语句,与if…else if…else语句等价。语法如下:
在JDK7 以前,switch 后面小括号内的变量或表达式只能是整数、字符或Enum。从JDK8开始,增加对字符串的比较。该语句先取得变量或表达式的值,然后开始与case后的值进行比较,如果变量或表达式的值与case后面的值相等,就从这个case处开始执行语句,直到遇到break 结束整条语句;如果变量或表达式的值和所有case后面的值都不相等,则执行default后面的代码块。default语句也可以省略。switch语句示例代码如下:
上述代码的运行结果如下:
第3行代码定义了一个字符串变量sr,其值为“石头”。第4~16行代码是一条switch语句,取得第4行代码中sr的值,与第5行代码中的case后面的值比较,发现两值相等,则执行第6行和第7行代码,而第7行代码的作用就是终止switch语句。故该程序的运行结果就是执行第6条语句输出“石头”。若把第3行代码中sr的值改为“剪刀”会怎么样呢?取得第4行代码中变量sr的值,与第5行代码中case后面的值比较,不相等,则继续与第8行代码中的case后面的值比较,相等,则执行第9行和第10行代码,第9行代码输出“剪刀”,第10行代码终止switch语句。故程序的运行结果就是执行第9行代码输出“剪刀”。若把第3行中代码sr的值改为“石头”“剪刀”“布”之外的值会怎么样呢?当sr的值与所有case后面的值都不匹配,就会执行default后面的语句,输出“输入信息有误”。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。