阿里巴巴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. html5 - 如何實(shí)現(xiàn)帶陰影的不規(guī)則容器?2. html5 - 只用CSS如何實(shí)現(xiàn)input框的寬度隨框里輸入的內(nèi)容長短自動適應(yīng)?3. javascript - 三目運(yùn)算符的一些問題4. python - uwsgi+django的搭建問題5. css - 移動端字體設(shè)置問題6. javascript - ueditor引入報(bào)錯問題7. c++ - win7在不刪除管理員密碼的前提下(密碼不為空),如何設(shè)置開機(jī)不需要密碼?8. html5 - H5 video 問題9. javascript - 移動端上不能實(shí)現(xiàn)拖拽布局嗎?10. javascript - 循環(huán)嵌套多個promise應(yīng)該如何實(shí)現(xiàn)?
