條件敘述 - if

一、條件式的寫法

條件式是我們在程式中做一些判斷時要用的句型,最常用的是比較兩個數值的關係,其語法如下:

數值一 關係運算元 數值二

因為條件式本身還不是一行指令,所以後面是不用加分號 ; 的,而上面的關係運算元有:

< 小於

> 大於

== 等於 (注意,是兩個等號)

<= 小於或等於

>= 大於或等於

!= 不等於

下面我們看一些例子:

變數 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 的值置,以此類推,全部的變數的值填入完成後,再將整行印出來。

 

三、練習:

  1. 輸入一個整數 a,如果 a 是偶數,則印出 "Yes!",否則印出 "No!"。
    10
    Yes!
    23
    No!

    提示:可以使用取餘數符號 %, a % 2 代表 a 除以 2 的餘數,當 a 偶數時,a 除以 2 的餘數為 0 。  
  2. 連續輸入兩個整數 a、b,如果 a 是 b 的倍數,則印出 "Yes!",否則則印出 "No!"。
    20 5
    Yes!
    33 12
    No!
    提示:可以使用取餘數符號 %, a % b 代表 a 除以 b 的餘數,當 a 是 b 的倍數時,a 可以被 b 整除,即 a 除以 b 的餘數為 0 。

 

上一頁

首頁

下一頁