這篇文章將為大家詳細(xì)講解有關(guān)Java中選擇結(jié)構(gòu)的用法示例,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
專注于為中小企業(yè)提供網(wǎng)站建設(shè)、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)安福免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(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è)最基本的原則就是一定會(huì)有一個(gè)判斷條件,并且如果出現(xiàn)else一定會(huì)有一個(gè)與之對(duì)應(yīng)的if。
代碼格式:if(判斷條件){}else{}
判斷條件部分可以直接使用布爾值:true/false
如果使用表達(dá)式作為判斷條件則必須要保證最終的計(jì)算結(jié)果為布爾類型
對(duì)于switch-case結(jié)構(gòu),整體的結(jié)構(gòu)與if-else不同,雖然也是進(jìn)行判斷,但是switch-case是指定一個(gè)變量或表達(dá)式作為需要比對(duì)的值,通過(guò)case來(lái)羅列與之匹配的值,并寫出該情況下需要執(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都沒(méi)有匹配時(shí)執(zhí)行(如果離default最近的一個(gè)case沒(méi)有使用break,則也可能會(huì)被執(zhí)行)
單if結(jié)構(gòu)是最簡(jiǎn)單的選擇結(jié)構(gòu),表達(dá)的含義是:符合條件時(shí),執(zhí)行部分代碼,不符合條件時(shí),什么都不做,繼續(xù)執(zhí)行選擇結(jié)構(gòu)之后的代碼。需要注意的是,if用小括號(hào)裝一個(gè)條件,默認(rèn)只能控制一條語(yǔ)句,如果需要控制多條語(yǔ)句需要使用大括號(hào)。
public static void main(Stirng[] args){ // 假如有如下場(chǎng)景:你每天回家都要匯報(bào)你的考試成績(jī)和完成家庭作業(yè) // 如果你考的不錯(cuò)(90分以上),那么就會(huì)得到一次夸獎(jiǎng) // 如果考的不怎么樣,就什么都不會(huì)發(fā)生 // 而且,不管考的怎么樣,作業(yè)都是要完成的,就是如此的悲催 int score = 92; if(score >= 90){ // 為了避免不必要的麻煩,即使是一行代碼我們也加上大括號(hào),這招挺管用的! System.out.println("考的不錯(cuò)!"); } System.out.println("開始寫作業(yè)"); }
if-else結(jié)構(gòu)是最基本的選擇結(jié)構(gòu),明確一個(gè)判斷條件后,指定條件成立時(shí)做什么,條件不成立時(shí)做什么。
public static void main(Stirng[] args){ // 假如有如下場(chǎng)景:根據(jù)不同的年級(jí)進(jìn)入不同的活動(dòng)教室 // 3年級(jí)及以下的學(xué)生進(jìn)入活動(dòng)室一 // 其他年級(jí)學(xué)生進(jìn)入活動(dòng)教室二 int grade = 2; if(grade <= 3){ // 為了避免不必要的麻煩,即使是一行代碼我們也加上大括號(hào),這招挺管用的! System.out.println("進(jìn)入活動(dòng)教室一"); }else{ System.out.println("進(jìn)入活動(dòng)教室二"); } }
如果我們需要具體判斷的條件很多,那么我們就需要使用到多個(gè)if。需要注意的是,我們可以在一段程序中使用多個(gè)并列的if-else結(jié)構(gòu),但是這和if-eles if-else的結(jié)構(gòu)并不等效,請(qǐng)看流程圖。
并列的if-else結(jié)構(gòu),每個(gè)if后面都可以引導(dǎo)判斷條件,但是相互之間相對(duì)獨(dú)立,無(wú)關(guān)聯(lián)。
// 偽代碼如下: public static void main(Stirng[] args){ if(條件){ // 程序代碼 }else{ // 程序代碼 } if(條件){ // 程序代碼 }else{ // 程序代碼 } }
對(duì)于if-else if-else結(jié)構(gòu),如果一個(gè)if中的條件為真,則其他的判斷分支將不會(huì)執(zhí)行,即使判斷結(jié)果為真!
// 偽代碼如下: public static void main(Stirng[] args){ if(條件){ // 程序代碼 }else if(條件){ // 程序代碼 }else{ // 程序代碼 } }
掌握了基本條件判斷結(jié)構(gòu)后,對(duì)于復(fù)雜問(wèn)題可能需要使用到嵌套結(jié)構(gòu)。比如某一個(gè)問(wèn)題需要分兩種或多種情況討論,而這幾種情況又需要進(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)功夫來(lái)進(jìn)行轉(zhuǎn)換。
在這種情況下會(huì)按次序進(jìn)行判斷執(zhí)行匹配到的case后面的代碼,執(zhí)行完畢后直接結(jié)束switch-case結(jié)構(gòu),當(dāng)所有的case都沒(méi)有匹配時(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("怕是變異了?"); } }
當(dāng)case對(duì)應(yīng)的值被匹配到后,對(duì)應(yīng)的代碼會(huì)被執(zhí)行,由于沒(méi)有break,將會(huì)繼續(xù)執(zhí)行下一個(gè)case對(duì)應(yīng)的代碼(包括default),直到整個(gè)switch-case都結(jié)束或遇到一個(gè)break為止。
public static void main(Stirng[] args){ // 有的時(shí)候我們剛好可以利用一下穿透的特點(diǎn),來(lái)進(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的括號(hào)中可以使用表達(dá)式,只要計(jì)算結(jié)果的類型滿足要求即可 // 對(duì)分?jǐn)?shù)進(jìn)行區(qū)間的劃分,相當(dāng)于變向的范圍判斷 switch(score / 10){ case 10: // 此處什么都不填寫,匹配到之后自動(dòng)去執(zhí)行case9對(duì)應(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("成績(jī)錄入有誤"); } }
關(guān)于“Java中選擇結(jié)構(gòu)的用法示例”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
文章題目:Java中選擇結(jié)構(gòu)的用法示例
URL網(wǎng)址:http://aaarwkj.com/article42/jpdohc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站排名、微信公眾號(hào)、虛擬主機(jī)、電子商務(wù)、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)