数学上有比较运算,像是大于、等于、小于等,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'
。