1.条件判断:
①.单分支判断:
if(条件表达式){ }
执行特点:条件满足就执行,不满足就不执行
说明:
(1)if()括号中一定是boolean结果,要么true,要么false
A:是一个boolean变量
B:比较表达式,关系表达式
C:逻辑表达式
(2)如果{}中只有一个语句时,允许省略{},强烈建议不要省略
②双分支条件判断
if(条件表达式){
//执行的语句1;
}else{
//执行的语句2;
}
执行特点:
当条件表达式成立时,执行语句块1,否则执行语句块2
说明:
(1)if()中必须是boolean值
(2){}中如果只有一句语句,允许省略{},强烈建议保留
③多分支条件判断:
if(条件表达式1){
//执行的语句1;
}else if(条件表达式2){
//执行的语句2;
}else if( 条件表达式3){
//执行的语句3;
}…
}else{
//执行的语句;
}
执行特点:
多个分支,也只会执行其中的一个;
条件判断的顺序是从上往下判断,如果上面已经有满足条件了,下面的条件就不看了;
如果上面的条件不满足,依次往下看;
如果所有的条件表达式都不成立,看是否存在单独的else,如果有,那么就执行它的语句块。
说明:
(1)所有的if()中一定是boolean
(2)如果{}中语句只有一句,可以省略{},强烈建议保留
(3)如果条件的区间范围是互斥的关系(区间没有重叠部分),多个条件的顺序可以调换
如果条件的区间范围是包含的关系(区间有重叠部分),顺序不能随意调整,范围小的在上,范围大的在下面。
2.选择结构:
switch(变量){
case 值1:
//break;
case 值2:
//break;
…
default:
break;
}
执行特点:
1、入口
(1)当switch(表达式)中表达式的值与其中一个case后面的常量值“相等”,那么就从这个case进入
(2)当switch(表达式)中表达式的值与所有的case后面的常量值都不匹配,那么找default,如果存在,就从default进入
2、出口
(1)自然出口,switch的结束}
(2)中断出口,break
3、一旦找到“入口”,就会一直从上往下执行,直到遇到“出口”
说明:凡是用switch…case可以实现的,用if…else都可以实现。
只不过很多时候,用switch…case的可读性和运行的效率更高。
但是switch…case使用的场景要严格一点:一般是等值判断。
要求:
(1)switch()中的表达式的类型只支持:byte,short,char,int四种基本数据类型。
(2)case后面必须是常量
(3)所有case后面的值不能重复。