1、if語句
第一種形式:
if(條件){ 語句1; }
第二種形式:
if(條件){ 語句1; }else{ 語句2; }
第三種形式:
if(條件1){ 語句1; }else if(條件2){ 語句2; }...... else if(條件n){ 語句n; }else{ 語句n+1; }
使用if語句時,要優先將範圍更小的條件放在前面,否則會出現邏輯錯誤。舉個經典的例子:
public class Branch {
public static void main(String[] args) {
int age = 40; //輸出結果爲 青年人
if(age >= 20){
System.out.println("青年人");
}else if(age >= 40){
System.out.println("中年人");
}else if (age >= 60){
System.out.println("老年人");
}
}
}
按照我們預想的,應該是要輸出中年人。爲了避免這種問題,要優先將範圍更小的條件放在前面,然後else默認是對前面的條件取反。正確的語句如下:
public class Branch {
public static void main(String[] args) {
int age = 40; //輸出結果爲 中年人
if(age >= 60){
System.out.println("老年人");
}else if(age >= 40){
System.out.println("中年人");
}else if (age >= 20){
System.out.println("青年人");
}
}
}
2、switch語句
switch語句由一個控制表達式和多個case標籤組成,並且switch語句後面的控制表達式的數據類型只能是byte、short、char、int、枚舉類型和java.lang.String(java1.7開始支持),不能爲boolean類型。
注意:要在每個case標籤的最後加上break語句,否則會產生邏輯錯誤。舉個例子:
public class Branch {
public static void main(String[] args) {
int age = 40;
boolean a =true;
switch (age){
case 60:
System.out.println("老年人");
case 40:
System.out.println("中年人");
case 20:
System.out.println("青年人");
default:
System.out.println("未知");
}
}
}
輸出結果:
這是因爲在switch語句中,它會拿條件一一去和case後面的條件匹配,一旦匹配成功,就會執行這個case標籤後面所有的屬於該switch的代碼,不會再去判斷後面的case和default標籤,只有遇到break纔會結束。所以當我們應該在每個case標籤裏面語句的最後一句加上break,由於default標籤部分已經到了switch語句的最末端,所以可以省去break。
如下:
public class Branch {
public static void main(String[] args) {
int age = 40;
boolean a =true;
switch (age){
case 60:
System.out.println("老年人");
break;
case 40:
System.out.println("中年人");
break;
case 20:
System.out.println("青年人");
break;
default:
System.out.println("未知");
}
}
}
輸出結果: