--- GA: G-RZYLL0RZGV --- ###### tags: `大一程設` `東華大學` `東華大學資管系` `基本程式概念` `資管經驗分享` 進階IF-ELSE,Switch === [toc] ## 前言 在進行程式開發的時候迴圈、條件判斷式、函式幾乎是不可或缺的要素,舉個例子,在進行遊戲開發的時候,如果有角色,角色間發生碰撞就會用 if 來處理,當碰撞發生,我們就執行甚麼條件。 而 switch 是與 if 非常類似的存在,通常在將情況分成幾個小類型的時候會用,簡單的說,複雜的條件判斷交給 if,簡單的情況判斷交給 switch,但都用 if 其實也沒甚麼關係。 ### 巢狀 if 看起來好像很厲害,但其實就是if裡面包著其他if。 範例如下: ```csharp= if(grade>=60){ if(grade>=90){ }else{ } } ``` **補充:** <span style="color:red;">**else以最近的if為主**</span>,所以第三行的else是配給第二行的if ### if - else if - else 當你想要寫多個條件的時候有多種寫法可以寫。 - 第一種就是瘋狂的if下去。 這種做法,if不管有幾個,彼此的條件沒有關係。 ```cpp= if(條件一){符合條件一就執行} if(條件二){符合條件二就執行} if(條件三){符合條件三就執行} if(條件四){符合條件四就執行} ``` - 第二種就是搭配elseif寫 後面的else if的條件會受到影響。 ```cpp= if(條件一){符合條件一就執行} else if(條件二){不符合條件一,符合條件二就執行} else if(條件三){不符合條件一、二,符合條件三就執行} else if(條件四){不符合條件一、二、三,符合條件四就執行} ``` - 第三種就是if - else if - else都使用 這種用法的情境大概是,有幾個主要的條件要個別處理,不符合那些主要條件的則全部都用else來處理。 ```cpp= if(條件一){符合條件一就執行} else if(條件二){不符合條件一,符合條件二就執行} else if(條件三){不符合條件一、二,符合條件三就執行} else {上述條件都不符合,則執行} ``` ### switch 我們在寫switch的時候,switch(變數)中放的變數是以該變數的值是否符合下面條件來判斷。 - 判斷該變數的值則是否符合 case寫幾個都沒關係!,但是一定要有<span style="color:red;">**冒號**! </span> 裡面的值可以是字符也可以是整數......等等 ```cpp= case 值: ``` - break 用來跳出switch,以及迴圈for(),while(),在遇到break時不論後面的程式碼還剩多少,都會直接跳出。 - default 當多個列出的case 條件都不符合時,則會執行default:裡的內容,注意!記得加<span style="color:red;">**冒號**! </span> 範例: ```cpp= int grade; switch(grade){ //根據變數grade裡的值判斷 case 'A' : //grade的值為A時,則執行 cout<<"蠻厲害的"; break; //跳出Switch,不執行之後的條件 case 'B' : cout<<"中規中矩"; break; //跳出Switch,不執行之後的條件 default : //grade的值不是A也不是B則執行 cout<<"該加油了..." } ```