# C語言教學11 - if流程控制 ## 撰寫於2018年9月 [現代C語言小心得](https://hackmd.io/s/HJPpJjvw7) ## if 如果... **if**敘述中,當判斷式為真,就會執行區塊的程式。 ```C= if (/* 判斷 */) { // ... 一些東西 ... } ``` ## else if 其他狀況下,如果... **else if** 代表在同一階層最近一個if沒有執行時,就會進入這一個塊。 ```C= if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } ``` ## else 其餘 **else**敘述中,只要最近一個if沒有執行,就會進到else區段 ```C= if (/* 判斷 */) { // ... 一些東西 ... } else { // ... 一些東西 ... } ``` ## 特殊排版 可以像是這樣 ```C= if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } else { // ... 一些東西 ... } ``` 也可以這樣 ```C= if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } // ... // ... // ... else { // ... 一些東西 ... } ``` 還有兩種我很喜愛的排版方法 ```C= if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } // ... // ... // ... else { // ... 一些東西 ... } ``` 或是 ```C= if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } else if (/* ... */) { // ... // ... // ... } else { // ... 一些東西 ... } ``` 在敘述只有單行的時候可以不使用大括號 ```C= if (/* 判斷 */) /* 一行東西 */; else if (/* 判斷 */) /* 一行東西 */; else if (/* 判斷 */) /* 一行東西 */; else if (/* 判斷 */) /* 一行東西 */; else /* 一行東西 */; ``` 其實程式碼的風格有很多類,可以自己去查詢,以後我也會介紹我使用的風格。 ## 習題 ### 習題一 #### 題目 某校老師希望要一個可以協助他判斷等第的程式。輸入一個成績,九十分以上是優等,八十到八十九分是甲等,七十到七十九分是乙等,六十到六十九分是丙等,未滿六十分是丁等。請利用簡單的輸入輸出以及判斷,做出判斷程式。 #### 範例輸入 ``` 82 ``` #### 範例輸出 ``` 甲等 ``` ### 習題二 #### 題目 承上題,老師為了怕自己不太會打字,可能會打錯,希望你能夠幫他判斷不合理的成績,像是300分。假如分數超過100分,請協助他印出錯誤訊息。 #### 範例輸入 ``` 110 ``` #### 範例輸出 ``` 錯誤 ``` ### 習題三 #### 題目 承上題,因為月考一次有五個科目,老師希望能夠輸入五個科目的成績,並且幫他平均,然後列出所有的等第。 #### 範例輸入 ``` 70 90 80 70 90 ``` #### 範例輸出 ``` 乙等 優等 甲等 乙等 優等 平均:80分 甲等 ```