這篇文章將為大家詳細(xì)講解有關(guān)Java中選擇結(jié)構(gòu)的用法示例,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
專注于為中小企業(yè)提供網(wǎng)站建設(shè)、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)安福免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
文本關(guān)鍵字:基本結(jié)構(gòu)、選擇結(jié)構(gòu)、if、else、switch、case
使用if-else選擇結(jié)構(gòu)時(shí),一個(gè)最基本的原則就是一定會有一個(gè)判斷條件,并且如果出現(xiàn)else一定會有一個(gè)與之對應(yīng)的if。
代碼格式:if(判斷條件){}else{}
判斷條件部分可以直接使用布爾值:true/false
如果使用表達(dá)式作為判斷條件則必須要保證最終的計(jì)算結(jié)果為布爾類型
對于switch-case結(jié)構(gòu),整體的結(jié)構(gòu)與if-else不同,雖然也是進(jìn)行判斷,但是switch-case是指定一個(gè)變量或表達(dá)式作為需要比對的值,通過case來羅列與之匹配的值,并寫出該情況下需要執(zhí)行的代碼。
代碼格式:switch(變量或表達(dá)式){case 匹配值:代碼片段;default:代碼片段;}
變量或表達(dá)式結(jié)果的類型只能為:整數(shù)類型(byte、short、int),字符串String,字符char,枚舉enum
case本身具有穿透的特點(diǎn),會從一個(gè)匹配的case進(jìn)入執(zhí)行,直到遇到break;為止
default關(guān)鍵字可以不出現(xiàn),如果出現(xiàn)只能出現(xiàn)在最后的位置,在所有case都沒有匹配時(shí)執(zhí)行(如果離default最近的一個(gè)case沒有使用break,則也可能會被執(zhí)行)
單if結(jié)構(gòu)是最簡單的選擇結(jié)構(gòu),表達(dá)的含義是:符合條件時(shí),執(zhí)行部分代碼,不符合條件時(shí),什么都不做,繼續(xù)執(zhí)行選擇結(jié)構(gòu)之后的代碼。需要注意的是,if用小括號裝一個(gè)條件,默認(rèn)只能控制一條語句,如果需要控制多條語句需要使用大括號。
public static void main(Stirng[] args){ // 假如有如下場景:你每天回家都要匯報(bào)你的考試成績和完成家庭作業(yè) // 如果你考的不錯(90分以上),那么就會得到一次夸獎 // 如果考的不怎么樣,就什么都不會發(fā)生 // 而且,不管考的怎么樣,作業(yè)都是要完成的,就是如此的悲催 int score = 92; if(score >= 90){ // 為了避免不必要的麻煩,即使是一行代碼我們也加上大括號,這招挺管用的! System.out.println("考的不錯!"); } System.out.println("開始寫作業(yè)"); }
if-else結(jié)構(gòu)是最基本的選擇結(jié)構(gòu),明確一個(gè)判斷條件后,指定條件成立時(shí)做什么,條件不成立時(shí)做什么。
public static void main(Stirng[] args){ // 假如有如下場景:根據(jù)不同的年級進(jìn)入不同的活動教室 // 3年級及以下的學(xué)生進(jìn)入活動室一 // 其他年級學(xué)生進(jìn)入活動教室二 int grade = 2; if(grade <= 3){ // 為了避免不必要的麻煩,即使是一行代碼我們也加上大括號,這招挺管用的! System.out.println("進(jìn)入活動教室一"); }else{ System.out.println("進(jìn)入活動教室二"); } }
如果我們需要具體判斷的條件很多,那么我們就需要使用到多個(gè)if。需要注意的是,我們可以在一段程序中使用多個(gè)并列的if-else結(jié)構(gòu),但是這和if-eles if-else的結(jié)構(gòu)并不等效,請看流程圖。
并列的if-else結(jié)構(gòu),每個(gè)if后面都可以引導(dǎo)判斷條件,但是相互之間相對獨(dú)立,無關(guān)聯(lián)。
// 偽代碼如下: public static void main(Stirng[] args){ if(條件){ // 程序代碼 }else{ // 程序代碼 } if(條件){ // 程序代碼 }else{ // 程序代碼 } }
對于if-else if-else結(jié)構(gòu),如果一個(gè)if中的條件為真,則其他的判斷分支將不會執(zhí)行,即使判斷結(jié)果為真!
// 偽代碼如下: public static void main(Stirng[] args){ if(條件){ // 程序代碼 }else if(條件){ // 程序代碼 }else{ // 程序代碼 } }
掌握了基本條件判斷結(jié)構(gòu)后,對于復(fù)雜問題可能需要使用到嵌套結(jié)構(gòu)。比如某一個(gè)問題需要分兩種或多種情況討論,而這幾種情況又需要進(jìn)一步分多種情況討論。
// 偽代碼如下: public static void main(Stirng[] args){ if(條件){ // 程序代碼 if(條件){ // 程序代碼 }else{ // 程序代碼 } }else{ // 程序代碼 } }
switch-case結(jié)構(gòu)也是選擇結(jié)構(gòu)的一種,主要使用在選擇條件較多,并且主要是等值判斷時(shí)。如果我們需要使用switch-case結(jié)構(gòu)進(jìn)行某一個(gè)范圍的判斷,那就需要下一點(diǎn)功夫來進(jìn)行轉(zhuǎn)換。
在這種情況下會按次序進(jìn)行判斷執(zhí)行匹配到的case后面的代碼,執(zhí)行完畢后直接結(jié)束switch-case結(jié)構(gòu),當(dāng)所有的case都沒有匹配時(shí),會執(zhí)行default相關(guān)的代碼。
public static void main(Stirng[] args){ String sex = "女"; switch(sex){ case "男": System.out.println("男生"); break; case "女": System.out.println("女生"); break; default: System.out.println("怕是變異了?"); } }
當(dāng)case對應(yīng)的值被匹配到后,對應(yīng)的代碼會被執(zhí)行,由于沒有break,將會繼續(xù)執(zhí)行下一個(gè)case對應(yīng)的代碼(包括default),直到整個(gè)switch-case都結(jié)束或遇到一個(gè)break為止。
public static void main(Stirng[] args){ // 有的時(shí)候我們剛好可以利用一下穿透的特點(diǎn),來進(jìn)行區(qū)間的判斷 // 下面是一個(gè)經(jīng)典案例:根據(jù)分?jǐn)?shù)進(jìn)行分檔 // 90-100:A,80-89:B,70-79:C,60-69:D,0-59:不及格,其他:錯誤的分?jǐn)?shù) int score = 75; // switch的括號中可以使用表達(dá)式,只要計(jì)算結(jié)果的類型滿足要求即可 // 對分?jǐn)?shù)進(jìn)行區(qū)間的劃分,相當(dāng)于變向的范圍判斷 switch(score / 10){ case 10: // 此處什么都不填寫,匹配到之后自動去執(zhí)行case9對應(yīng)的代碼 // 但是case10不能省略,否則會丟失100分時(shí)的情況 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: // 繼續(xù)使用穿透的特點(diǎn),表示0-59分時(shí)的情況 System.out.println("不及格"); break; default: // 當(dāng)分?jǐn)?shù)為負(fù)數(shù)或大于100分時(shí)執(zhí)行這部分的代碼 System.out.println("成績錄入有誤"); } }
關(guān)于“Java中選擇結(jié)構(gòu)的用法示例”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。