| 數學上有比較的運算,像是大於、等於、小於等等,C中也提供了這些運算子,這些運算子我們稱之為「關係運算子」(Relational
operator)或「比較運算子」(Comparison
operator),它們有大於(>)、不小於(>=)、小於(<)、不大於(<=)、等於
(==)以及不等於(!=)。
請看看下面這幾行會顯示哪些數值: printf("10 > 5\t\t%d\n", 10 > 5);
printf("10 >= 5\t\t%d\n", 10 >= 5); printf("10 < 5\t\t%d\n", 10 < 5); printf("10 <= 5\t\t%d\n", 10 <= 5); printf("10 == 5\t\t%d\n", 10 == 5); printf("10 != 5\t\t%d\n", 10 != 5); 程式的執行會顯示0或1,分別表示真(成立)或假(不成立),如下所示:
在C中,所有非零的數值在作為條件式時都被視為真。 關係運算在使用時有個即使是程式設計老手也可能犯的錯誤,且不容易發現,也就是等於運算子(==),注意它是兩個連續的等號(=)所組成,而不是一個等 號,一個等號是指定運算子,這點必須相當注意,例如若有兩個變數x與y要比較是否相等,是寫成x == y,而不是x = y,後者的作用是將y的值指定給x,而不是比較運算。 即然談到了條件式的問題,我們來介紹C中的「條件運算子」(Conditional operator),它的使用方式如下: 條
件式 ?
成立傳回值 : 失敗傳回值
條件運算子的傳回值依條件式的結果而定,如果條件式的結果為真,則傳回冒號前的值,若為假,則傳回冒號後的值,下面這個程式可以作個簡單的 示範: #include <stdio.h> 執行結果:
這個程式會依您所輸入的分數來判斷學生成績是否不小於60分,以決定其是否及格,如果是則傳回字元'Y',否則傳回字元'N',下面這個程式可以判斷使用 者輸入是否為奇數: #include <stdio.h> 執行結果:
在C中非零數值都可以表示真,而0表示假,所以當您輸入的數為奇數時,就不能被2整除,所以餘數一定不是0,在條件式中表示真, 因而傳回字元'Y',若數值為偶數,則2整除,所以餘數為0,在條件式中表示假,所以傳回字元'N。' |