首页 > 编程笔记 > C++笔记 阅读:1

C++三目运算符的用法(附带实例)

C++ 中的条件运算符“?:”是一个三目运算符,由其构成的条件表达式能像 if else 判断语句一样完成判断。

例如:
max=(iA > iB) ? iA : iB;
上述语句首先比较 iA 和 iB 的大小,如果 iA 大于 iB,max 就取 iA 的值,否则取 i B的值。

可以将上述条件运算语句改为 if else 判断语句,代码如下:
if(iA > iB)
     max= iA;
else
     max= iB;
两种写法是完全等价的。

【实例 1 】使用条件运算符判断数的奇偶性。
#include <iostream>
using namespace std;
int main()
{
    int input;
    cout << "Input number" << endl;
    cin >> input; // 输入一个数
    (input % 2 != 0) ? cout << "The value is odd number" : cout << "The value is even number"; // 使用条件运算符判断奇偶性
    cout << endl;
}
运行程序,输出结果为:

Input number
10
The value is even number

程序中使用条件运算符判断数的奇偶性,比使用判断语句时的代码要简洁。程序完成由用户输入整型数,然后和 2 进行求余(%)运算,如果运算结果不为 0,说明是奇数,否则是偶数。

【实例 2】判断某数是否为 3 和 5 的整倍数。
#include <iostream>
using namespace std;
int main()
{
    int input;
    cout << "Input number" << endl;
    cin >> input; // 输入一个数
    (input % 3 == 0 && input % 5 == 0) ? cout << "yes" : cout << "no"; // 使用条件运算符判断读数是否是3和5的整倍数
    cout << endl;
}
运行程序,输出结果为:

Input number
15
yes

程序需要用户输入一个整型数,然后用“%”运算判断能否被 3 和 5 整除,如果能同时被 3 和 5 整除,说明输入的整型数是 3 和 5 的整倍数。

条件运算符可以嵌套,例如:
表达式1?(表达式a?表达式b:表达式c):表达式d;
由于条件运算符嵌套后的代码不容易阅读,一般不建议使用。

相关文章