tags: 大一程設 東華大學 東華大學資管系 基本程式概念 資管經驗分享

進階IF-ELSE,Switch

前言

在進行程式開發的時候迴圈、條件判斷式、函式幾乎是不可或缺的要素,舉個例子,在進行遊戲開發的時候,如果有角色,角色間發生碰撞就會用 if 來處理,當碰撞發生,我們就執行甚麼條件。

而 switch 是與 if 非常類似的存在,通常在將情況分成幾個小類型的時候會用,簡單的說,複雜的條件判斷交給 if,簡單的情況判斷交給 switch,但都用 if 其實也沒甚麼關係。

巢狀 if

看起來好像很厲害,但其實就是if裡面包著其他if。 範例如下:

if(grade>=60){ if(grade>=90){ }else{ } }

補充: else以最近的if為主,所以第三行的else是配給第二行的if

if - else if - else

當你想要寫多個條件的時候有多種寫法可以寫。

  • 第一種就是瘋狂的if下去。 這種做法,if不管有幾個,彼此的條件沒有關係。
if(條件一){符合條件一就執行} if(條件二){符合條件二就執行} if(條件三){符合條件三就執行} if(條件四){符合條件四就執行}
  • 第二種就是搭配elseif寫 後面的else if的條件會受到影響。
if(條件一){符合條件一就執行} else if(條件二){不符合條件一,符合條件二就執行} else if(條件三){不符合條件一、二,符合條件三就執行} else if(條件四){不符合條件一、二、三,符合條件四就執行}
  • 第三種就是if - else if - else都使用

這種用法的情境大概是,有幾個主要的條件要個別處理,不符合那些主要條件的則全部都用else來處理。

if(條件一){符合條件一就執行} else if(條件二){不符合條件一,符合條件二就執行} else if(條件三){不符合條件一、二,符合條件三就執行} else {上述條件都不符合,則執行}

switch

我們在寫switch的時候,switch(變數)中放的變數是以該變數的值是否符合下面條件來判斷。

  • 判斷該變數的值則是否符合 case寫幾個都沒關係!,但是一定要有冒號! 裡面的值可以是字符也可以是整數等等
case:
  • break 用來跳出switch,以及迴圈for(),while(),在遇到break時不論後面的程式碼還剩多少,都會直接跳出。

  • default 當多個列出的case 條件都不符合時,則會執行default:裡的內容,注意!記得加冒號!

範例:

int grade; switch(grade){ //根據變數grade裡的值判斷 case 'A' : //grade的值為A時,則執行 cout<<"蠻厲害的"; break; //跳出Switch,不執行之後的條件 case 'B' : cout<<"中規中矩"; break; //跳出Switch,不執行之後的條件 default : //grade的值不是A也不是B則執行 cout<<"該加油了..." }