Java程序的执行,一般分三种:顺序执行、选择执行、循环执行
选择结构分两种:if-else结构 和 switch多选结构
if-else中又分三种:
a)if单选
if(条件表达式){
代码;
}
表达式条件为真,则执行后面{}中的内容,为假则跳过{}中的内容,继续向下执行。
也可省略{},此时程序会把if表达式之后第一个;之前的语句,当作if结构中的语句,
例如:
if(false)
System.out.println("A");
System.out.println("B");
//此时只输出B,因为输出A的语句被当作if结构体中的语句,条件表达式为false,不执行
b)if else双选
if(条件表达式) {
条件为true时执行的代码;
}
else
{
条件为false时执行的代码;
}
条件为真,执行if中的语句,然后再执行if...else之外的语句;反之执行else中的语句,
然后执行if...else之后的语句。同if结构,{}可以省略。
c)if-else if-else if-else
if (条件表达式1) {
条件1为true时执行的代码;
}
else if(条件表达式2) {
条件2为true时执行的代码;
}
……
else {
条件1和条件2都不为true执行的代码;
}
其中,else if语句可以有多个。
条件1为真,则执行if中的语句;如果条件2为真,则执行else if中的语句;...;
如果条件都不满足再执行else中的语句;最后再执行if...else if...else之后的语句。
if-else选择结构总结:
1.需要多次判断的情况下,能够使用if-else if-else多选结构,就不要用if单选结构。
因为if-else if-else结构效率要高,只要其中一个条件为真,会立即跳出循环。
2.在if选择结构中,还可以嵌套选择结构或循环结构
3.if后的条件表达式,只能是结果为布尔型的表达式
switch多选结构
switch (表达式) {
case 常量1:
语句序列;
break;
case 常量2:
语句序列;
break;
case 常量3:
语句序列;
break;
……
default:
默认语句;
break;
}
switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者
是switch语句的末尾。与任一case值不匹配,则进入default语句(如果存在default语句的情况)
switch总结:
1、switch()中的数据类型只能为:byte、short、int、char、String(JDK7)和枚举
2、case后面必须是常量,并且常量的类型应该和switch()中的数据类型保持一致。
并且不允许有重复的case值。
3、break用于跳出switch语句,根据需求我们我们可以省略break,如果没有break,
一旦进入case,导致后面的所有case都能进入, 直到遇到break或switch结束。(即会发生穿透)
4、default可以省略,但是最好不要省略,除非case能匹配所有的可能性。
case和default的是无序的,不过default只能最后执行或不执行。
if选择结构和switch多分支选择结构的比较:
switch:建议判断固定值的时候用。
if:建议判断区间或范围的时候用,对运算结果是boolean类型的表达式进行判断。
注意:用switch能做的,用if都能做,但反过来则不行。