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