在一個switch 區塊內,每個case 要麼透過break/return 等來終止,要麼註解說明程序會繼續執行到哪一個case 為止; 在一個switch 區塊內,都必須包含一個default 語句並且放在最後,即使它什麼程式碼也沒有。 這是為什麼?
switch case中default是很有必要的,即使只是個控制台輸出。例如你有3個case,'1','2','3'.但是你在某些情況下不小心傳入了4,這時候如果沒有default,程式就崩潰了,有時候可以把default看成是異常處理的一種。當然,default也是懶人處理問題的好選擇。還是之前的123,只有1的時候輸出'hello world',其他都輸出'nice to meet you'.如果不用default你可能要寫好幾個case來對應,default的話就一個case就夠了。除了1,其他都走default。 return/break的問題,還是上文的3個case, 1,2,3。如果1的邏輯執行完沒有return/break來結束,那2的邏輯也會跟著執行,直到遇到return/break為止。當然這種情況是合法的。但有些時候我們只想執行case 1中的邏輯,那就必須在1的邏輯後面加上return/break,否則多執行的2的邏輯,就會導致其他地方的邏輯錯誤。
大概就是這個意思,沒什麼太多的內容。
switch case中default是很有必要的,即使只是個控制台輸出。例如你有3個case,'1','2','3'.但是你在某些情況下不小心傳入了4,這時候如果沒有default,程式就崩潰了,有時候可以把default看成是異常處理的一種。當然,default也是懶人處理問題的好選擇。還是之前的123,只有1的時候輸出'hello world',其他都輸出'nice to meet you'.如果不用default你可能要寫好幾個case來對應,default的話就一個case就夠了。除了1,其他都走default。
return/break的問題,還是上文的3個case, 1,2,3。如果1的邏輯執行完沒有return/break來結束,那2的邏輯也會跟著執行,直到遇到return/break為止。當然這種情況是合法的。但有些時候我們只想執行case 1中的邏輯,那就必須在1的邏輯後面加上return/break,否則多執行的2的邏輯,就會導致其他地方的邏輯錯誤。
大概就是這個意思,沒什麼太多的內容。