本教程操作環(huán)境:windows7系統(tǒng)、java10版,DELL G3電腦。
1.控制表達(dá)式不同
switch后面的控制表達(dá)式只能是byte、short、char、int、String和枚舉類型,不能是boolean類型
if后面的控制表達(dá)式是boolean類型;
2.結(jié)構(gòu)不同
switch:主要是將choose中的值和某一個(gè)case值進(jìn)行比較,而case值是一個(gè)確定的值。
if else:每個(gè)執(zhí)行的語句前都會有一個(gè)條件,這個(gè)條件可以是類似x==0的這種匹配一個(gè)確定值的布爾表達(dá)式,也可以是x>10的這種匹配一個(gè)范圍的布爾表達(dá)式。
switch語句
if else語句
3.執(zhí)行效率不同
switch的執(zhí)行效率要高于if語句。
switch會生成一個(gè)數(shù)據(jù)統(tǒng)計(jì)表,將case后面的值全部統(tǒng)計(jì)起來,匹配時(shí)先拿表中的數(shù)據(jù)進(jìn)行比較,如果有則直接跳轉(zhuǎn)到相應(yīng)case語句;如果沒有,則直接跳轉(zhuǎn)到default語句。
if else語句需要一條一條的去進(jìn)行取值范圍的判斷,直到找到正確的選項(xiàng)位置,這樣的話勢必會浪費(fèi)大量的時(shí)間。
以上就是java switch和if語句的不同,在使用范圍上if語句更廣一點(diǎn),但也逐條判斷在效率方面會比 switch要慢,在實(shí)際運(yùn)用中大家可以根據(jù)需求進(jìn)行挑選。更多關(guān)于“Java培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓(xùn)經(jīng)驗(yàn),課程大綱更科學(xué)更專業(yè),有針對零基礎(chǔ)的就業(yè)班,有針對想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實(shí)現(xiàn)java程序員夢想。