阿里巴巴Java開發(fā)手冊關(guān)于switch的問題
問題描述
在一個(gè) switch 塊內(nèi),每個(gè) case 要么通過 break/return 等來終止,要么注釋說明程序?qū)⒗^續(xù)執(zhí)行到哪一個(gè) case 為止; 在一個(gè) switch 塊內(nèi),都必須包含一個(gè) default 語句并且放在最后,即使它什么代碼也沒有。這是為什么?
問題解答
回答1:switch case中default是很有必要的,哪怕僅僅是個(gè)控制臺輸出。比如你有3個(gè)case,’1’,’2’,’3’.但是你在某些情況下不小心傳入了4,這時(shí)候如果沒有default,程序就崩潰了,有時(shí)候可以把default看成是異常處理的一種。當(dāng)然,default也是懶人處理問題的不錯(cuò)選擇。還是之前的123,只有1的時(shí)候輸出’hello world’,其他都輸出’nice to meet you’.如果不用default你可能要寫好幾個(gè)case來對應(yīng),default的話就一個(gè)case就夠了。除了1,其他都走default。return/break的問題,還是上文的3個(gè)case, 1,2,3。如果1的邏輯執(zhí)行完沒有return/break來結(jié)束,那2的邏輯也會跟著執(zhí)行,直到遇到return/break為止。當(dāng)然這種情況是合法的。但是有些時(shí)候我們只想執(zhí)行case 1中的邏輯,那就必須在1的邏輯后加return/break,否則多執(zhí)行的2的邏輯,就會導(dǎo)致其他地方的邏輯錯(cuò)誤。
大概就是這個(gè)意思,沒什么太多的內(nèi)容。
相關(guān)文章:
1. python - linux怎么在每天的凌晨2點(diǎn)執(zhí)行一次這個(gè)log.py文件2. 關(guān)于mysql聯(lián)合查詢一對多的顯示結(jié)果問題3. 實(shí)現(xiàn)bing搜索工具urlAPI提交4. MySQL主鍵沖突時(shí)的更新操作和替換操作在功能上有什么差別(如圖)5. 數(shù)據(jù)庫 - Mysql的存儲過程真的是個(gè)坑!求助下面的存儲過程哪里錯(cuò)啦,實(shí)在是找不到哪里的問題了。6. windows誤人子弟啊7. mysql優(yōu)化 - MySQL如何為配置表建立索引?8. 如何用筆記本上的apache做微信開發(fā)的服務(wù)器9. 我在網(wǎng)址中輸入localhost/abc.php顯示的是not found是為什么呢?10. 冒昧問一下,我這php代碼哪里出錯(cuò)了???
