Java语言的选择结构一般有两种,if语句和switch语句。
if语句
if语句是根据条件的真假来决定执行哪一个分支语句序列。Java可支持的if语句有三种格式:
(1)单分支if语句
(2)双分支if-else语句
(3)多分支if-else-if语句
单分支if语句
单分支语句格式如下:
if(boolean_expression){
statement;
}
如果内嵌语句只有一条,可以不加花括号
双分支if-else语句
这是一种二选一的结构,如果if中的判断条件为真,则执行if花括号下的语句序列,反之执行else后面的语句序列
格式如下:
if(boolean_expression){
statement1;
}else {
statement2;
}
多分支if-else-if语句
判断条件多于两种情况时,需要运用
多分支语句格式如下:
if(boolean_expression1){
statement1;
}else if(boolean_expression2){
statement2;
}
...
else if(bool_expressionN) {
statementN;
}else {
statementM;
}
关于if语句的注意点
(1)else子句不能单独作为语句使用,一个else必须有与之配对的if使用,并且总是与离它最近的if语句配对使用
(2)花括号中的语句可以是一个语句序列也可以是一条语句
(3)多分支if-else-if语句可以没有最后一个else语句,如果没有任何一个分支的boolean表达式为真,则不执行任何一个语句段
switch语句
与C语言中的switch语句相同,属于多分支选择结构,格式为:
switch(expression) {
case value1:statement1;
break;
case value2:statement2;
break;
...
case valueN:statementN;
break;
[default:default_statement;]
}
主要注意点:
1)表达式expression的值只能是byte,char,int 和 short类型
2)case语句中的value值必须是常量,每一个case语句中的value值必须是不同的
3)default语句可以没有也可以有。当表达式expression的值与所有case语句中的value值都不匹配时,执行default语句,如果没有default语句则跳过switch语句往后执行
4)在执行完case子句的语句序列后程序不会自动跳出switch语句块,break语句用来执行完一个case语句后跳出switch语句
5)若case语句后的statement语句段中包含多条语句可以不加花括号
选择结构的嵌套
与C语言相同,嵌套选择结构可以在if语句里面再写if语句,在else语句里面再写if语句,甚至在switch语句里面嵌套switch语句,多层嵌套或导致程序可读性差,容易出错。