大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 switch語(yǔ)句和if else語(yǔ)句比較分析

switch語(yǔ)句和if else語(yǔ)句比較分析

更新時(shí)間:2020-11-17 17:53:19 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1272次

switch語(yǔ)句和if else語(yǔ)句算是Java控制語(yǔ)句里面比較經(jīng)典的兩個(gè),在Java代碼中常常會(huì)出現(xiàn),但是我們有時(shí)候會(huì)對(duì)選擇switch語(yǔ)句還是if else語(yǔ)句產(chǎn)生爭(zhēng)議,本文我們就來(lái)對(duì)比一下switch語(yǔ)句和if else語(yǔ)句。


switch語(yǔ)句可以算是if else語(yǔ)句的一種特殊情況。當(dāng)我們使用if else語(yǔ)句來(lái)做判斷時(shí),如果我們只想對(duì)條件表達(dá)式的結(jié)果做一些特定值的判斷,那么就可以使用switch語(yǔ)句。例如:我們需要根據(jù)當(dāng)前月份來(lái)判斷這個(gè)月份應(yīng)該有多少天,我們可以使用if else語(yǔ)句來(lái)處理這個(gè)問(wèn)題,但同樣也可以使用switch語(yǔ)句來(lái)處理。switch語(yǔ)句的使用方式如下: switch (變量或表達(dá)式)

{

case 值1:

{

//處理內(nèi)容

break;

}

case 值2:

{

//處理內(nèi)容

break;

}

default

{

//處理內(nèi)容

break;

}

}


switch右側(cè)的小括號(hào)中的變量或表達(dá)的值的結(jié)果是一個(gè)確定的值。大括號(hào)中可以有多個(gè)case語(yǔ)句,case右側(cè)的值如果等于switch右側(cè)小括號(hào)中的值,那么程序?qū)?zhí)行當(dāng)前case大括號(hào)下的內(nèi)容(case下的大括號(hào)可以省略,但建議保留),在大括號(hào)中的最后一行需要加入break語(yǔ)句,表示執(zhí)行完當(dāng)前條件分支的case之后程序跳出當(dāng)前switch結(jié)構(gòu),如果沒(méi)有break則程序會(huì)順序執(zhí)行下面的case語(yǔ)句代碼,即使case后的值不等于switch的條件值。如果switch中所有的case值都不等于switch的條件值,那么程序?qū)?zhí)行default后的大括號(hào)中的內(nèi)容,default分支即為默認(rèn)條件分支,也就是說(shuō)當(dāng)所有的case分支都沒(méi)有起作用時(shí)程序?qū)?zhí)行此默認(rèn)分支,(default分支可以省略,但建議保留)。例如:int month = 11;

int day;

switch (month)

{

case 0: //一月

{

day = 31;

break;

}

case 1: //二月

{

day = 28;

break;

}

case 2: //三月

{

day = 31;

break;

}

case 3: //四月

{

day = 30;

break;

}

//5月到11月略

case 11: //十二月

{

day = 31;

break;

}

default: //其它情況

{

day = 0;

break;

}

}


上面程序執(zhí)行的過(guò)程為:switch (month)中的條件表達(dá)式的值為11,也就是十二月(月分從0開(kāi)始),程序會(huì)將這個(gè)值與所有的case條件值做比較。第一個(gè)case的條件值為0,11與0相比較的結(jié)果為假,則程序跳過(guò)此case分支;第二個(gè)case的條件值為1,11與0想比較結(jié)果為假,則程序跳過(guò)此case分支;依次比較,當(dāng)case 11: { } 這個(gè)條件值為11,11與11相比較的結(jié)果為真,于是程序進(jìn)入此case分支,執(zhí)行day = 0;語(yǔ)句。注意,當(dāng)執(zhí)行完這個(gè)語(yǔ)句之后,程序需要通過(guò)break跳出當(dāng)前switch結(jié)構(gòu),如果不使用break語(yǔ)句,程序在執(zhí)行完day = 31之后,就會(huì)繼續(xù)向下執(zhí)行下一個(gè)分支,即使其條件不符合。也就是說(shuō),如果不用break跳出,程序在執(zhí)行完day = 31后,還會(huì)繼續(xù)向下執(zhí)行day = 0;于是程序的運(yùn)行結(jié)果就出現(xiàn)了錯(cuò)誤。 通過(guò)上面例子我們可以看到swtich與if else語(yǔ)法的書(shū)寫(xiě)方式不同,但功能很類似,只不過(guò)switch中的case值是固定的常量,而if 后的條件值可以是一個(gè)變量或條件表達(dá)式,所以說(shuō)if else結(jié)構(gòu)在使用范圍上比switch更廣,但switch結(jié)構(gòu)的語(yǔ)法更清晰,它適用于一些特定的情況,在一些固定值的條件判斷中使用switch更加方便美觀一些。


通過(guò)以上對(duì)于switch語(yǔ)句和if else語(yǔ)句比較分析,在實(shí)際應(yīng)用中如何判斷是使用if else語(yǔ)句 還是 switch語(yǔ)句 ,目前一般是從代碼可讀性的角度出發(fā),基于判斷條件的數(shù)量來(lái)決定:數(shù)量越多就越傾向于 switch 而不是 if else。事實(shí)證明除了代碼可讀性,switch 的運(yùn)行速度是比 if else 更快的。因此,一般情況下,我們?cè)诰幊痰倪^(guò)程中還是推薦使用switch語(yǔ)句的。想要了解更多的控制語(yǔ)句,可以觀看本站的Java SE教程,里面有著對(duì)Java控制語(yǔ)句的精彩講解,引人入勝,不容錯(cuò)過(guò)哦。


提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 亚洲人成影院午夜网站 | 免费一级淫片 | 欧美97| 在线免费观看亚洲 | 亚洲精品tv久久久久久久久久 | 99re6在线视频免费精品 | 欧美日韩国产精品综合 | 国产一区二区在线免费观看 | 狠狠久久亚洲欧美专区 | 国产亚洲欧美在线 | 国产精品久久久久久久久久影院 | 羞羞视频在线免费 | 日韩在线视频在线 | 久久精品久 | 伊人黄色 | 国产一级高清视频 | 久久99中文字幕久久 | 亚洲精品综合一区二区三区 | 五月婷婷丁香在线视频 | 伊人色综合网一区二区三区 | 国产九九热视频 | 五月婷久久| 国产精品尹人在线观看免费 | 亚洲欧洲中文日产 | 久久综合社区 | 97色老99久久九九爱精品 | 精品偷拍模特露出丝袜在线 | 欧美不卡在线观看 | 国产精品玖玖玖影院 | 亚洲精品视频久久 | 日韩中文在线观看 | 四虎在线视频观看 | 日韩中文字幕精品一区在线 | 国产午夜久久精品 | 欧美福利视频在线观看 | 日韩一级特黄毛片在线看 | 91精品成人免费国产片 | 日韩黄色网址 | 国产成人毛片亚洲精品不卡 | 亚欧成人毛片一区二区三区四区 | 久草国产在线观看 |