新聞中心
這篇文章將為大家詳細(xì)講解有關(guān)Java中選擇結(jié)構(gòu)的用法示例,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
臨淄ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!Java程序設(shè)計(jì)的基本結(jié)構(gòu) - 選擇結(jié)構(gòu)
文本關(guān)鍵字:基本結(jié)構(gòu)、選擇結(jié)構(gòu)、if、else、switch、case
一、if-else結(jié)構(gòu)
使用if-else選擇結(jié)構(gòu)時(shí),一個(gè)最基本的原則就是一定會(huì)有一個(gè)判斷條件,并且如果出現(xiàn)else一定會(huì)有一個(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),會(huì)從一個(gè)匹配的case進(jìn)入執(zhí)行,直到遇到break;為止
default關(guān)鍵字可以不出現(xiàn),如果出現(xiàn)只能出現(xiàn)在最后的位置,在所有case都沒有匹配時(shí)執(zhí)行(如果離default最近的一個(gè)case沒有使用break,則也可能會(huì)被執(zhí)行)
1. 單if結(jié)構(gòu)
單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è) // 如果你考的不錯(cuò)(90分以上),那么就會(huì)得到一次夸獎(jiǎng) // 如果考的不怎么樣,就什么都不會(huì)發(fā)生 // 而且,不管考的怎么樣,作業(yè)都是要完成的,就是如此的悲催 int score = 92; if(score >= 90){ // 為了避免不必要的麻煩,即使是一行代碼我們也加上大括號,這招挺管用的! System.out.println("考的不錯(cuò)!"); } System.out.println("開始寫作業(yè)"); }
2. if-else結(jié)構(gòu)
if-else結(jié)構(gòu)是最基本的選擇結(jié)構(gòu),明確一個(gè)判斷條件后,指定條件成立時(shí)做什么,條件不成立時(shí)做什么。
public static void main(Stirng[] args){ // 假如有如下場景:根據(jù)不同的年級進(jìn)入不同的活動(dòng)教室 // 3年級及以下的學(xué)生進(jìn)入活動(dòng)室一 // 其他年級學(xué)生進(jìn)入活動(dòng)教室二 int grade = 2; if(grade <= 3){ // 為了避免不必要的麻煩,即使是一行代碼我們也加上大括號,這招挺管用的! System.out.println("進(jìn)入活動(dòng)教室一"); }else{ System.out.println("進(jìn)入活動(dòng)教室二"); } }
3. if-else if-else結(jié)構(gòu)
如果我們需要具體判斷的條件很多,那么我們就需要使用到多個(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中的條件為真,則其他的判斷分支將不會(huì)執(zhí)行,即使判斷結(jié)果為真!
// 偽代碼如下: public static void main(Stirng[] args){ if(條件){ // 程序代碼 }else if(條件){ // 程序代碼 }else{ // 程序代碼 } }
4. 嵌套結(jié)構(gòu)
掌握了基本條件判斷結(jié)構(gòu)后,對于復(fù)雜問題可能需要使用到嵌套結(jié)構(gòu)。比如某一個(gè)問題需要分兩種或多種情況討論,而這幾種情況又需要進(jìn)一步分多種情況討論。
// 偽代碼如下: public static void main(Stirng[] args){ if(條件){ // 程序代碼 if(條件){ // 程序代碼 }else{ // 程序代碼 } }else{ // 程序代碼 } }
二、switch-case
switch-case結(jié)構(gòu)也是選擇結(jié)構(gòu)的一種,主要使用在選擇條件較多,并且主要是等值判斷時(shí)。如果我們需要使用switch-case結(jié)構(gòu)進(jìn)行某一個(gè)范圍的判斷,那就需要下一點(diǎn)功夫來進(jìn)行轉(zhuǎn)換。
1. 含有break和default
在這種情況下會(huì)按次序進(jìn)行判斷執(zhí)行匹配到的case后面的代碼,執(zhí)行完畢后直接結(jié)束switch-case結(jié)構(gòu),當(dāng)所有的case都沒有匹配時(shí),會(huì)執(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("怕是變異了?"); } }
2. 無break
當(dāng)case對應(yīng)的值被匹配到后,對應(yīng)的代碼會(huì)被執(zhí)行,由于沒有break,將會(huì)繼續(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:不及格,其他:錯(cuò)誤的分?jǐn)?shù) int score = 75; // switch的括號中可以使用表達(dá)式,只要計(jì)算結(jié)果的類型滿足要求即可 // 對分?jǐn)?shù)進(jìn)行區(qū)間的劃分,相當(dāng)于變向的范圍判斷 switch(score / 10){ case 10: // 此處什么都不填寫,匹配到之后自動(dòng)去執(zhí)行case9對應(yīng)的代碼 // 但是case10不能省略,否則會(huì)丟失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é)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。
標(biāo)題名稱:Java中選擇結(jié)構(gòu)的用法示例-創(chuàng)新互聯(lián)
文章起源:http://fisionsoft.com.cn/article/cchsdi.html