邏輯與:表達(dá)式1? &&? 表達(dá)式2? (遇假則停)
? ? 第一個(gè)為真圆仔,則返回表達(dá)式2垃瞧;(連續(xù)多個(gè)表達(dá)式皆為真則返回最后一個(gè))
? ? 第一個(gè)為假,則返回表達(dá)式1坪郭;(遇到假的則中斷个从,即返回假的那個(gè))
邏輯或:表達(dá)式1? ||? 表達(dá)式2? (遇真則停)
? ? 遇到第一個(gè)真即停止,則返回第一個(gè)真截粗,
? ? 遇到假的繼續(xù)向后執(zhí)行信姓,直到找到真,如果沒有即返回假
switch與if的區(qū)別
switch :開關(guān)? ?case :小例子
switch(表達(dá)式){
case value1:
? ? 表達(dá)式===value1時(shí)绸罗,執(zhí)行此部分代碼塊
? ? break意推;
case value2:
? ? 表達(dá)式===value2時(shí),執(zhí)行此部分代碼塊
?break珊蟀;
default:表達(dá)式不等于任何value值時(shí)菊值。執(zhí)行此塊代碼
}
-------------關(guān)鍵字 switch 后面括號(hào)內(nèi)可以是表達(dá)式或值, 通常是一個(gè)變量---------------
關(guān)鍵字 case , 后跟一個(gè)選項(xiàng)的表達(dá)式或值育灸,后面跟一個(gè)冒號(hào)
switch 表達(dá)式的值會(huì)與結(jié)構(gòu)中的 case 的值做比較
如果存在匹配全等(===) 腻窒,則與該 case 關(guān)聯(lián)的代碼塊會(huì)被執(zhí)行,并在遇到 break 時(shí)停止磅崭,整個(gè) switch 語(yǔ)句代碼執(zhí)行結(jié)束
如果所有的 case 的值都和表達(dá)式的值不匹配儿子,則執(zhí)行 default 里的代碼(default:不履行)
注意: 執(zhí)行case 里面的語(yǔ)句時(shí),如果沒有break砸喻,則繼續(xù)執(zhí)行下一個(gè)case里面的語(yǔ)句柔逼。
switch 語(yǔ)句和 if else if 語(yǔ)句的區(qū)別
一般情況下,它們兩個(gè)語(yǔ)句可以相互替換
switch...case 語(yǔ)句通常處理 case為比較確定值的情況割岛, 而 if…else…語(yǔ)句更加靈活愉适,常用于范圍判斷(大于、等于某個(gè)范圍)
switch 語(yǔ)句進(jìn)行條件判斷后直接執(zhí)行到程序的條件語(yǔ)句癣漆,效率更高维咸。而if…else 語(yǔ)句有幾種條件,就得判斷多少次。
當(dāng)分支比較少時(shí)癌蓖,if… else語(yǔ)句的執(zhí)行效率比 switch語(yǔ)句高瞬哼。
當(dāng)分支比較多時(shí),switch語(yǔ)句的執(zhí)行效率比較高费坊,而且結(jié)構(gòu)更清晰倒槐。