c++ - 这行三元运算符的语法是什么

标签 c++ syntax conditional-operator

我花了很多时间来了解如何工作或它的语法代码是什么?

greatest=(a>b&&a>c)?a:(b>c)?b : c;

我知道三元运算符的主要语法

但最棒的是我不知道怎么回事
  • 必填我想给任何人解释一下,并告诉我它们的语法。

  • 谢谢。

    最佳答案

    该运算符本质上类似于这些if-else语句

    if ( a > b && a > c )
    {
        greatest = a;
    }
    else if ( b > c )
    {
        greatest = b;
    }
    else
    { 
        greatest = c;
    }
    

    为了使带有两个嵌套条件运算符的表达式更加清晰,请使用括号
    greatest = ( a > b && a > c ? a: (  b > c ? b : c ) );    
    

    您可以使用标准算法std::max代替带有两个嵌套条件运算符的表达式。例如
    greatest = std::max( { a, b, c } );
    

    关于c++ - 这行三元运算符的语法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59416345/

    相关文章:

    c - printf 中的三元运算符

    c++ - 如果基类受到保护,则无法访问派生类中的转换

    c++ - boost shared_ptr 获取所有者计数

    c++ - 对 cv::inpaint 的 undefined reference - 错误 1

    Python:一次尝试多次,除了

    syntax - Haskell 中树的右旋转 : how is it work?

    C++一个类的默认构造函数调用另一个类的另一个默认构造函数

    c++ - 什么时候在 c/c++ 中强制使用 } 之后的分号?

    c - C 中的 IF 短语法

    c - C 中的三元运算符和 Return