我花了很多时间来了解其工作方式或语法代码是什么?
greatest=(a>b&&a>c)?a:(b>c)?b : c;
我知道三元运算符的主要语法
但是最棒的是我不知道怎么回事
谢谢。
答案 0 :(得分:6)
该运算符本质上类似于这些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 } );