數學上有比較運算,像是大於、等於、小於等,C++ 也提供了這些運算子,稱為關係運算子(Relational operator)或比較運算子(Comparison operator),它們有大於(>
)、不小於(>=
)、小於(<
)、不大於(<=
)、等於 (==
)以及不等於(!=
)。
請看看下面這幾行會顯示哪些數值:
cout << "10 > 5\t\t" << (10 > 5) << endl;
cout << "10 >= 5\t\t" << (10 >= 5) << endl;
cout << "10 < 5\t\t" << (10 < 5) << endl;
cout << "10 <= 5\t\t" << (10 <= 5) << endl;
cout << "10 == 5\t\t" << (10 == 5) << endl;
cout << "10 != 5\t\t" << (10 != 5) << endl;
程式的執行會顯示 0 或 1,分別表示不成立或成立,如下所示:
10 > 5 1
10 >= 5 1
10 < 5 0
10 <= 5 0
10 == 5 0
10 != 5 1
在 C++ 中,所有非零的數值在作為條件式時都被視為 true
。
C++ 條件運算子(Conditional operator)使用方式如下:
條件式 ? 成立傳回值 : 失敗傳回值
條件運算子的傳回值依條件式的結果而定,如果條件式的結果為 true
,傳回冒號前的值,若為 false
,傳回冒號後的值,下面這個程式可以作為簡單示範:
#include <iostream>
using namespace std;
int main() {
int score = 0;
cout << "輸入學生分數:";
cin >> score;
cout << "該生是否及格?"
<< (score >= 60 ? 'Y' : 'N')
<< endl;
return 0;
}
執行結果:
輸入學生分數:60
該生是否及格?Y
這個程式會依輸入的分數,判斷學生成績是否不小於 60 分,以決定其是否及格,如果是傳回字元 'Y'
,否傳回字元 'N'
,下面這個程式可以判斷使用者輸入是否為奇數:
#include <iostream>
using namespace std;
int main() {
int input = 0;
cout << "輸入整數:";
cin >> input;
cout << "該數為奇數?"
<< (input % 2 ? 'Y' : 'N')
<< endl;
return 0;
}
執行結果:
輸入整數:3
該數為奇數?Y
在 C++ 中非零數值都可以表示 true
,而 0 表示 false
,當輸入數為奇數時,就不能被 2 整除,餘數一定不是 0,在條件式中表示 true
, 因而傳回字元 'Y'
,若數值為偶數,可被 2 整除,餘數為 0
,在條件式中表示 false
,所以傳回字元 'N'
。