C語言教學11 - if流程控制

撰寫於2018年9月

現代C語言小心得

if 如果

if敘述中,當判斷式為真,就會執行區塊的程式。

if (/* 判斷 */) { // ... 一些東西 ... }

else if 其他狀況下,如果

else if 代表在同一階層最近一個if沒有執行時,就會進入這一個塊。

if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... }

else 其餘

else敘述中,只要最近一個if沒有執行,就會進到else區段

if (/* 判斷 */) { // ... 一些東西 ... } else { // ... 一些東西 ... }

特殊排版

可以像是這樣

if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } else { // ... 一些東西 ... }

也可以這樣

if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } // ... // ... // ... else { // ... 一些東西 ... }

還有兩種我很喜愛的排版方法

if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } // ... // ... // ... else { // ... 一些東西 ... }

或是

if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } else if (/* 判斷 */) { // ... 一些東西 ... } else if (/* ... */) { // ... // ... // ... } else { // ... 一些東西 ... }

在敘述只有單行的時候可以不使用大括號

if (/* 判斷 */) /* 一行東西 */; else if (/* 判斷 */) /* 一行東西 */; else if (/* 判斷 */) /* 一行東西 */; else if (/* 判斷 */) /* 一行東西 */; else /* 一行東西 */;

其實程式碼的風格有很多類,可以自己去查詢,以後我也會介紹我使用的風格。

習題

習題一

題目

某校老師希望要一個可以協助他判斷等第的程式。輸入一個成績,九十分以上是優等,八十到八十九分是甲等,七十到七十九分是乙等,六十到六十九分是丙等,未滿六十分是丁等。請利用簡單的輸入輸出以及判斷,做出判斷程式。

範例輸入

82

範例輸出

甲等

習題二

題目

承上題,老師為了怕自己不太會打字,可能會打錯,希望你能夠幫他判斷不合理的成績,像是300分。假如分數超過100分,請協助他印出錯誤訊息。

範例輸入

110

範例輸出

錯誤

習題三

題目

承上題,因為月考一次有五個科目,老師希望能夠輸入五個科目的成績,並且幫他平均,然後列出所有的等第。

範例輸入

70
90
80
70
90

範例輸出

乙等
優等
甲等
乙等
優等
平均:80分
甲等
Select a repo