首頁 >常見問題 >switch語句中必須有default選項嗎?

switch語句中必須有default選項嗎?

青灯夜游
青灯夜游原創
2020-11-25 16:03:4649615瀏覽

switch語句中不是必須有default選項的。 switch語句首先會找滿足條件的case值做為執行後面的程式入口,若所有的case都不滿足,則找default入口,若未找到則退出整個語句;default只是一個備用入口,有沒有都無所謂。

switch語句中必須有default選項嗎?

本教學操作環境:windows7系統、c99版本、Dell G3電腦。

Switch在某些電腦語言中是保留字,其作用大多情況下是進行判斷選擇;常和case、break、default一起使用。

switch語句可以用來基於不同的條件來執行不同的動作。

switch語句是一個條件選擇語句,首先會找到滿足條件的case值做為執行後面的程式入口;若所有的case都不滿足,則找default入口,若未找到則退出整個switch語句;所以default只是一個備用的入口,有沒有都無所謂。

但是為了進行錯誤檢查或邏輯檢查,還是應該在switch語句中加入default分支。

例如,下述switch語句完全合法:

switch (char_code)
{
      case tyt:
      case 'y': printf ( " You answered YES ! \n" )
           break
      case 'N':
      case 'n': printf ("You answered NO!\n");
           break
}

但是,如果一個未知字元被傳遞給這條switch語句,會出現什麼情況呢?這時,程式將沒有任何輸出。因此,最好還是加入default分支,以處理這種情況:

......
default: printf ("Unknown response : %d\n", char_code);
          break
......

此外,default分支能為邏輯檢查帶來很多方便。例如,如果用switch語句來處理數目固定的條件,而且認為這些條件之外的值都屬於邏輯錯誤,那麼可以加入一個default分支來辨識邏輯錯誤。

請看下列:

void move_cursor (int direction)
{
     switch (direction)
     {
           case UP:     cursor_up()
                            break
           case DOWN:   cursor_down()
                            break
           case LEFT:   cursor_left ()
                            break
           case RIGHT:  cursor_ right ( )
                             break
           default:     printf ("Logic error on line number %ld!!! \n",
                                     __ LINE__ )
                             break
     }
}

更多程式相關知識,請造訪:程式設計學習網站! !

以上是switch語句中必須有default選項嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn