1.表达式A, 表达式B ,有2*2=4种组合:A&&B、 A&&!B、 !A&&B、 !A&&!B
if(A){//A&&B 、A&&!B
if(B){
//todo
}else{
//todo
}
}else if(B) {//!A&&B
//todo
}
else {//!A&&!B
//todo
}
先执行A表示式,不满足才继续往下走
2.常用的场景写法
if(!A&&!B){
//todo
}else if(A&&B){//A||B
//todo
}else if(A){//A&&!B
//todo
}else{//!A&&B
//todo
}
3.表达式写的先后顺序是有差异的,系统默认从左向右执行
比如A=null,if(!A&&A.equals(""))
不会报错,执行if(false),而if(A.equals("")&&!A)
就会报空指针的错误,导致崩溃
4.if...else if...else...
与if...if...
的区别
前者只会执行一次,后者如果多个if语句都满足,就会执行多次