Java 条件选择语句
本文最后更新于:2024年3月18日 凌晨
Java 条件选择语句
if语句
无else的if语句
其格式如下:
1 |
|
说明
- 如果条件表达式的值为真,则执行"if块"部分的语句,否则直接执行后续语句。
- 用大括号括住要执行一组语句,也称语句块,语句块以"{“表示块的开始,以”}"表示块的结束,如果要执行的if块为单条语句,可以省略大括号。
[例3-1]:从键盘输入3个整数,输出其中的最大者。
程序代码如下:
1 |
|
说明:第6~11行采用Swing对话框获取输入数据并转换为整数给a,b,c三个变量赋值,第12~16行是完成求最大值的核心,先假定a最大,以后的b和c分别与最大还大,则自己最大,第17行通过String消息对话框显示输出结果。
带else的if语句
1 |
|
说明
-
该格式是一种更常见的形式,即if与else配套使用,所以一般称做if…else语句,如果条件表达式为真,执行"if块"的代码,否则执行"else块"的代码。
-
"if块"和"else块"为单条语句,可以省略大括号。
if语句的嵌套
在稍微复杂额编程中,常出现条件的分支不止两种情况,一种方法是用if嵌套来解决,所谓if嵌套就是在if语句的"if块 "或"else块"中继续含有if语句。
1 |
|
例如,上面求a,b,c3个数中的最大数,也可以采用if嵌套来实现。
1 |
|
关于if嵌套要注意的一个问题是if与else的匹配问题,由于if语句有带else和不带else两种形式,编译程序在给else语句寻找匹配的if语句时是按最近匹配原则来配对的,所以在出现if嵌套时最好用花括号来标识清楚相应的块。
阶梯else if
阶梯else if是嵌套if中一种特殊情况的简写形式,这种特殊情况就是"else块"中逐层嵌套if语句,使用阶梯else if可以使程序更简短和清晰。
1 |
|
[例3-2]:输入一个学生的成绩,根据所在分数段输出信息,0~59输出"不及格",60~69输出"及格",70~79输出"中",80~89输出"良",90以上输出"优"
1 |
|
- 说明:该程序是if嵌套的一种比较特殊的情况,除了最后一个else外,其他3个else的语句块中正好是一个if语句。
- 注意:在else if中条件的排列是按照范围逐步缩小的,下一个条件是上一个条件不满足情况下的一种限制,例如,条件s<90处实际上包括s>=80的限制。
多分支语句switch
对于多分支的处理,Java提供了switch语句,其格式如下:
1 |
|
说明
- switch语句执行时首先计算表达式的值,这个值可以是整型,字符型或字符串类型(其中字符串类型是在JDK1.7中新增的支持),同时要与case分支的判断值的类型一致,计算出表达式的值后,它首先与第一个case分支进行比较,若相同,执行第一个case分支的语句块,否则再检查第二个case分支,以此类推。
- case子句的值valueN必须是常量,各个case子句中的值不同。
- 如果没有匹配情况,就执行default指定的语句,但default子句本身是可选的。
- break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行,否则,找到一个匹配的情况后面所有的语句都会被执行,直到遇到break为止,在特殊情况下,多个不同的case值要执行一组相同的操作,这时可以不用break
注意:在Java 5以前,switch(expr)中,expr只能是byte,short,char,int,从Java 5开始,Java中引入了枚举类型,expr也可以是enum类型,从Java 7开始,expr还可以是字符串(String),但是长整型(long)在目前所有的版本中都是不可以的。
[例3-2]:也可以采用switch语句实现,修改后的程序代码如下:
1 |
|
说明:这里的关键是通过除10取整,将成绩的判定条件转换为整数值范围的情形,第8~12行所列出的case情形无任何执行语句,所以按执行流程均会执行第14行语句。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!