if分支
if
if(條件){
程式碼塊;
}
if...else...
if(條件){
程式碼塊1;
}else {
程式碼塊2;
}
if...else if...else...
if(條件1){
程式碼塊1;
}else if (條件2){
程式碼塊2; // else if 可以寫多個
}else {
程式碼塊3; // else 可以省略不寫
}
if 巢狀
if(條件1) {
if(條件2) {
程式碼塊1;
} else {
程式碼塊2;
}
} else {
程式碼塊3;
}
if選擇結構,包括以下形式
- 基本if選擇結構:可以處理單一或組合條件的情況
- if-else選擇結構:可以處理簡單的條件分支情況
- 多重if選擇結構:可以處理分段的條件分支情況
- 巢狀if選擇結構:可以處理複雜的條件分支情況,透過外層語句和內層語句的協作,增強程式的靈活性
字串比較
- ==:比較引用型別記憶體地址是否相同
- equals:預設比較記憶體地址,但是String類重寫了equals()方法,比較的是內容是否相同。
例:使用者輸入性別sex 判斷是否是“男”
sex.equals("男"); // 可能會出現空指標異常(使用者未輸入內容)
"男".equals(sex); // 避免空指標異常
字串為null 時,表示沒有在堆中開闢空間
switch分支
switch (表示式) {
case 常量 1:
語句;
break;
case 常量 2:
語句;
break;
…
default:
語句;
}
使用switch分支的幾點注意事項
- 表示式型別只能是byte、short、int、char,JDK5開始支援列舉,JDK7開始支援String、不支援double、float、long。
- case給出的值不允許重複,且只能是字面量,不能是變數。
- 正常使用switch的時候,不要忘記寫break,否則會出現穿透現象。
- 存在多個case分支的程式碼是一樣時,可以把程式碼寫到一個case塊,其他case塊透過穿透效能,穿透到該case塊即可,這樣可以簡化程式碼。
switch與多重if
相同點:都是用來處理多分支條件的結構
不同點:switch選擇結構,只能處理等值條件判斷的情況;多重if選擇結構,適合某個變數處於某個連續區間時的情況。
在等值判斷時if 判斷可以換為switch 判斷。