阿里巴巴Java開發(fā)手冊關(guān)于switch的問題
問題描述
在一個 switch 塊內(nèi),每個 case 要么通過 break/return 等來終止,要么注釋說明程序?qū)⒗^續(xù)執(zhí)行到哪一個 case 為止; 在一個 switch 塊內(nèi),都必須包含一個 default 語句并且放在最后,即使它什么代碼也沒有。這是為什么?
問題解答
回答1:switch case中default是很有必要的,哪怕僅僅是個控制臺輸出。比如你有3個case,’1’,’2’,’3’.但是你在某些情況下不小心傳入了4,這時候如果沒有default,程序就崩潰了,有時候可以把default看成是異常處理的一種。當(dāng)然,default也是懶人處理問題的不錯選擇。還是之前的123,只有1的時候輸出’hello world’,其他都輸出’nice to meet you’.如果不用default你可能要寫好幾個case來對應(yīng),default的話就一個case就夠了。除了1,其他都走default。return/break的問題,還是上文的3個case, 1,2,3。如果1的邏輯執(zhí)行完沒有return/break來結(jié)束,那2的邏輯也會跟著執(zhí)行,直到遇到return/break為止。當(dāng)然這種情況是合法的。但是有些時候我們只想執(zhí)行case 1中的邏輯,那就必須在1的邏輯后加return/break,否則多執(zhí)行的2的邏輯,就會導(dǎo)致其他地方的邏輯錯誤。
大概就是這個意思,沒什么太多的內(nèi)容。
相關(guān)文章:
1. javascript - immutable配合react提升性能?2. javascript - sublime快鍵鍵問題3. 配置Apache時,添加對PHP的支持時語法錯誤4. Apache 已經(jīng)把網(wǎng)站根目錄的改為allow from all了,但是服務(wù)器還是不能訪問?5. css - 寫頁面遇到個布局問題,求大佬們幫解答,在線等,急!~6. phpstudy8.1支持win11系統(tǒng)嗎?7. javascript - nodejs關(guān)于進(jìn)程間發(fā)送句柄的一點(diǎn)疑問8. 實(shí)現(xiàn)bing搜索工具urlAPI提交9. vue.js - Vue 如何像Angular.js watch 一樣監(jiān)聽數(shù)據(jù)變化10. javascript - 移動端上不能實(shí)現(xiàn)拖拽布局嗎?

網(wǎng)公網(wǎng)安備