一、條件式的寫法
條件式是我們在程式中做一些判斷時要用的句型,最常用的是比較兩個數值的關係,其語法如下:
數值一 關係運算元 數值二
因為條件式本身還不是一行指令,所以後面是不用加分號 ; 的,而上面的關係運算元有:
< 小於
> 大於
== 等於 (注意,是兩個等號)
<= 小於或等於
>= 大於或等於
!= 不等於
下面我們看一些例子:
變數 a 是否大於 9 : a > 9
變數 a 和 b 的值是否相等 : a == b
變數 c 是否小於等於 100 : c <= 9
變數 d 是否不等於 e : d != e
另外,有時候我們必須有兩個以上的條件,則可以使用 && (And 且)及 || (Or 或)將之連起來,例如:
變數 a 大於10 且小於 100: (a>10) && (a<100)
變數 a 等於b 或等於 c: (a==b) || (a==c)
最後,如果我們在條件式的前面加上一個驚嘆號 !,則代表否定(Not),例如:
!( a>9) 和 a<=9 是一樣的。
二、if 敘述的語法
接下來我們看到 if 敘述的語法:
if (條件式) 指令一;
上面的語法是如果符合該條件,則執行指令一;有時候我們在條件不成立的時候也必需執行一些指令,這時候可以改用下面的語法:
if (條件式) 指令一;
else 指令二;
上面 else 後面的指令二就是當條件不成立時所要執行的指令。而有時候我們要執行的指令並不只一行,這個時候可以用一對大括弧 { } 把要執行的指令包起來,例如:
if (條件式) {
指令一;
指令二;
指令三;
}
else {
指令四;
指令五;
指令六;
}
上面的語法,當條件成立時程式會執行指令一至三,而當條件不成立的時候則是執行指令四至六。
三、印出 A、B 的大小關係
接下來,我們來寫一個輸入兩個整數 A、B,然後印出兩個變數的大小關係,程式執行的畫面如下(粉紅色代表輸出,淺藍色則是輸入的值):
A, B => 10 20
10 < 20
A, B => 30 20
30 > 20
A, B => 20 20
20 = 20
整個程式如下:
#include <stdio.h>
int main()
{
int a, b;
printf("A, B=> ");
scanf("%d %d", &a, &b);
if(a<b) printf("%d<%d\n", a, b);
if(a>b) printf("%d>%d\n", a, b);
if(a==b) printf("%d=%d\n", a, b);
return 0;
}
上面的例子,我們用一行 scanf() 同時讀取兩個變數 a、b,只要在 scanf 的第一個參數中,將原先的 "%d" 改成兩個 %d 即為 "%d %d",這就是告訴 scanf 要讀取兩個 %d 也就是整數進來,而當然我們後面也要補上兩個整數變數的位址,讓 scanf 可以把讀入的數值寫到變數裡。而同樣的,在 printf 的第一個參數裡如果有兩個以上的 %d 或其他的 %*,後面也要接著同樣數量的變數,而 printf 會自動把後面的第一個變數的值填到第一個 %d 的位置,第二個變數的值填到第二個 %d 的值置,以此類推,全部的變數的值填入完成後,再將整行印出來。
三、練習:
- 輸入一個整數 a,如果 a 是偶數,則印出 "Yes!",否則印出 "No!"。
10
Yes!
23
No!
提示:可以使用取餘數符號 %, a % 2 代表 a 除以 2 的餘數,當 a 偶數時,a 除以 2 的餘數為 0 。 - 連續輸入兩個整數 a、b,如果 a 是 b 的倍數,則印出 "Yes!",否則則印出
"No!"。
20 5
Yes!
33 12
No!
提示:可以使用取餘數符號 %, a % b 代表 a 除以 b 的餘數,當 a 是 b 的倍數時,a 可以被 b 整除,即 a 除以 b 的餘數為 0 。