📜  C++ 中的条件运算符(1)

📅  最后修改于: 2023-12-03 14:39:54.691000             🧑  作者: Mango

C++ 中的条件运算符

条件运算符也称为三目运算符,它是 C++ 中一个常用的运算符。它的简单语法为:

条件 ? 表达式1 : 表达式2

它的含义是如果条件为真,则执行表达式1,否则执行表达式2。现在我们来看一些例子:

#include <iostream>
using namespace std;

int main()
{
    int a = 10, b = 20;
    int max_value = (a > b) ? a : b;
    cout << "max_value = " << max_value << endl;

    bool is_true = true;
    string result = (is_true) ? "真" : "假";
    cout << "result = " << result << endl;

    int x = 5, y = 7;
    (x > y) ? (x += 10) : (y += 10); // 注意这里括号的使用,可以使代码更易读
    cout << "x = " << x << ", y = " << y << endl;

    return 0;
}

上面的代码分别演示了如何使用条件运算符求两个值中的最大值、将一个布尔值转为字符串、“根据条件修改变量的值”等操作。

需要注意的是,条件运算符是右结合的,而且它的返回值是一个完整的表达式,这也就意味着它可以被嵌套使用,例如:

string result = (a > b) ? ((a > c) ? "max is a" : "max is c") : ((b > c) ? "max is b" : "max is c");

这段代码根据 a、b、c 三个数大小的不同返回不同的字符串,它在逻辑上相当于:

  • 如果 a > b,则继续比较 a 和 c;
    • 如果 a > c,则返回字符串 "max is a";
    • 否则返回字符串 "max is c";
  • 否则,继续比较 b 和 c;
    • 如果 b > c,则返回字符串 "max is b";
    • 否则返回字符串 "max is c"。

综上,条件运算符既简单又实用,它可以使代码更加简洁、易读,但也需要我们注意代码的可读性,不要过多地嵌套条件运算符,以免降低代码的可读性。