Java流程控制--分支結構
阿新 • • 發佈:2020-11-24
Java流程控制--分支結構--if
單分支
- 結構:
if(條件表示式,這個表示式的結果是布林值:要麼是false,要麼是true){
//如果上面()中的表示式返回結果是true,那麼執行{}中程式碼
//如果上面()中的表示式返回結果是false ,那麼不執行{}中程式碼
//PS:{}中的程式碼是否執行,取決於()中表達式的返回結果
}
- 單分支之間,每一個選擇是獨立的,依次判斷執行的
- if後面的()中的條件,要按照自己需求儘量完善
- {}可以省略不寫,但是一旦省略,這個if就只負責後面的一句話,所以我們不建議初學者省略
public class TestIf01{ public static void main(String[] args){ // 實現功能:根據所得分數,判斷獲得的獎項 int num1 = 6; int num2 = 6; int num3 = 6; // 對分數進行求和 int sum = 0; sum += num1; sum += num2; sum += num3; // 判斷獲得的獎項 if(sum>=14){ System.out.println("恭喜獲得一等獎,lucky guy"); } if(sum>=10&&sum<14){ System.out.println("恭喜獲得二等獎,good"); } if(sum>=6&&sum<10){ System.out.println("恭喜獲得三等獎,just ok"); } if(sum<6){ System.out.println("真糟糕,你獲得的是安慰獎,bad luck"); } } }
多分支-if--else
- 結構
if(布林表示式1) {
語句塊1;
} else if(布林表示式2) {
語句塊2;
}……
else if(布林表示式n){
語句塊n;
} else {
語句塊n+1;
}
- 當布林表示式1為真時,執行語句塊1;否則,判斷布林表示式2,當布林表示式2為真時,執行語句塊2;否則,繼續判斷布林表示式3······;如果1~n個布林表示式均判定為假時,則執行語句塊n+1,也就是else部分
- 多分支:好處:只要滿足一個 分支以後,後面的分支就不需要判斷了 --》效率高
import java.util.Scanner; public class TestIf05{ public static void main(String[] args){ /* 小朋友搬桌子: 年齡大於7歲,可以搬桌子; 如果年齡大於5歲,性別是男,可以搬桌子; 否則不可以搬動桌子,提示:你還太小了 */ Scanner sc = new Scanner(System.in); System.out.print("請輸入小朋友的年齡"); if(sc.hasNextInt()){ int age = sc.nextInt(); if(age>=7){ System.out.println("小朋友已經可以搬桌子了"); }else if(age>=5){ System.out.print("小朋友的年齡不到7歲,小朋友的性別是?1、男孩 2、女孩"); if(sc.hasNextInt()){ int gender = sc.nextInt(); if(gender == 1){ System.out.println("雖然小朋友年齡不到7歲,但是男孩子可以搬桌子"); }else{ System.out.println("小女孩還太小了,不適合搬桌子"); } }else{ System.out.println("您的輸入有誤"); } }else{ System.out.println("小朋友太小了,不適合搬桌子"); } }else{ System.out.println("請輸入正確的年齡"); } } }
Java流程控制--分支結構--switch
- 語法結構
switch(){
case * :
case * :
.......
}
- switch後面是一個(),()中表達式返回的結果是一個等值,這個等值的型別可以為:int,byte,short,char,String,列舉型別
- 這個()中的等值會依次跟case後面的值進行比較,如果匹配成功,就執行:後面的程式碼
- 為了防止程式碼的“穿透”效果:在每個分支後面加上一個關鍵詞break,遇到break這個分支就結束了
- 類似else的“兜底”“備胎”的分支:default分支
- default分支可以寫在任意的位置上,但是如果沒有在最後一行,後面必須加上break關鍵字,如果在最後一行的話,break可以省略
- 相鄰分支邏輯是一樣的,那麼就可以只保留最後一個分支,上面的都可以省去不寫了
- switch分支和if分支區別:
- 表示式是等值判斷的話--》if ,switch都可以
- 如果表示式是區間判斷的情況---》if最好
- switch應用場合:就是等值判斷,等值的情況比較少的情況下
public class TestSwitch{
public static void main(String[] args){
/*
實現一個功能:
根據給出的學生分數,判斷學生的等級:
>=90 -----A
>=80 -----B
>=70 -----C
>=60 -----D
<60 -----E
*/
int score = (int)(Math.random()*100)+1;
System.out.println("學生成績:"+score+"分");
switch(score/10){
case 10 :
case 9 :
System.out.println("A等");
break;
case 8 :
System.out.println("B等");
break;
case 7 :
System.out.println("C等");
break;
case 6 :
System.out.println("D等");
break;
case 5 :
case 4 :
case 3 :
case 2 :
case 1 :
case 0 :
System.out.println("E等");
break;
default:
System.out.println("成績錯誤");
}
}
}