選擇結構分爲四種:if單選擇結構、if-else雙選擇結構、if-else if-else多選擇結構、switch結構spa
一、if單選擇結構it
格式:程序
if(【布爾表達式】或者【true/false】){co
【語句塊】cas
}閱讀
表示的意思是:
若是布爾表達式結果是true或者直接就是true,則執行大括號內語句塊,再執行大括號後面的語句
若是布爾表達式結果是false或者直接就是false,直接跳過大括號內語句塊,此if單選結構失效,執行大括號後面語句
例:
if(3<2){
System.out.println("3<2真的");//不輸出
}
System.out.println("3<2假的");//輸出
if後的大括號能夠不寫,若是不寫只做用於第一個語句,分號結束。可是不管如何都必須寫,增強閱讀性。
二、if-else雙選擇結構
格式:
if(【布爾表達式】或者【true/false】){
【語句塊1】
}else{
【語句塊2】
}
表示的意思是:
若是布爾表達式結果是true或者直接就是true,則執行語句塊1,而且語句塊2不執行,直接跳過語句塊2,執行程序後面其餘語句塊
若是布爾表達式結果是false或者直接就是false,直接跳語句塊1,執行語句塊2,再執行程序後面其餘語句塊
例:
int score=80;
if(score>60){
System.out.println("及格");//輸出
}else{
System.out.println("不及格");//不輸出
}
三、if-else if-else多選擇結構
格式:
if(【布爾表達式1】或者【true/false】){
【語句塊1】
}else if(【布爾表達式2】或者【true/false】){
【語句塊2】
}.......
else if(【布爾表達式n】或者【true/false】){
【語句塊n】
}else{
【語句塊n+1】
}
當布爾表達式1爲真,則執行語句塊1並跳過剩下全部多選擇結構語句,不然判斷布爾表達式2,
當布爾表達式2真時,則執行語句塊2並跳過剩下全部多選擇結構語句,以此類推。
若是布爾表達式1-n都爲假,則執行語句塊n+1,也就是else下的語句塊。
例:
int a=10;
if(a<1){
System.out.println("是個小數");
}else if((a<10)&&(a>1)){
System.out.println("是個個位數數");
}else if((a<100)&&(a>9)){
System.out.println("是個兩位數");//執行並輸出
}else if((a<1000)&&(a>99)){
System.out.println("是個三位數");
}else{
System.out.println("是個很大的數");
}
四、switch結構
格式:
switch(【原始表達式】){
case 【值1】:【語句表達式1】;
case 【值2】:【語句表達式2】;
。。。
case 【值y】:【語句表達式y】;
。。。
case 【值n】:【語句表達式n】;
default:【默認表達式】;(deafult及其默認表達能夠不寫)
}
用法:先算【原始表達式】的值,若是【原始表達式】的值與【值1】~【值n】中某一個【值y】相同,那麼從【語句表達式y】開始執行
再執行【語句表達式y+1】,直到【語句表達式n】,最後執行【默認表達式】;
若是再switch語句中看到了break;那麼此流程控制語句被打斷,直接跳過流程控制語句。
int a=1;
switch(a){
case 0:
a++;//不執行
case 1:
a--;//a變成0
case 2:
++a;//a變成1
case 3:
--a;//a變成0
default:
System.out.println(a);//輸出0
}
注意:switch用於等值的判斷。case後面必須是個值,不能夠是區間
當布爾表達式是等值判斷時,既能夠多選擇結構,也能夠用switch結構
當布爾表達式是區間判斷時,只能用多選擇結構。
任何switch結構均可以用多選擇結構替代
但遇到多值判斷時,用switch結構,可閱讀性更強