我知道这是一个有点愚蠢的问题,但是我的老师说我们不能在if语句中使用三元运算符,因为它是它的替代品...我的意思是,我自己可以在输入时发现它很愚蠢......
但是,如果我们可以在c ++的if语句中使用三元运算符,那么有人会告诉我吗?
答案 0 :(得分:3)
是的,你可以。
三元条件运算符是表达式,其类型从最后两个参数的类型推断出来。 表达式可以用作if
语句中的条件。
一个例子是变态
if (unemployed ? false : true)
代表
if (!unemployed)
当然,它是否是好的事情取决于具体情况。
答案 1 :(得分:3)
基本答案是:是的,你可以。
正如@Bathsheba已经指出的那样:它可能并不总是有意义的。
一个更明智的例子可能是这样的:
if (use_locking ? readLocked() : readUnlocked())
{
...
}
答案 2 :(得分:-3)
我知道这个问题很老了。但是,我遇到了另一个最近在我的代码中使用的有用示例:
if ( by_start ? (tmp_segment1->start > tmp_segment2->start) :
(tmp_segment1->end > tmp_segment2->end) )
{
...
}
它基本上是关于按元素的成员变量 start 或 end 对列表进行排序。通过在 if 中使用三元运算符,代码变得更小但仍然可读。