我们可以在if语句中使用三元运算符
Can we use ternary operator within an if statement?
我的老师说我们不能在if语句中使用三元运营商,因为这是替代方案...任何人都可以告诉我,我们是否可以在if语句中使用三元运营商在C ?
基本答案是:是的,你可以。
正如@bathsheba已经指出的那样:这可能并不总是有意义的。
一个更明智的例子可能是这样的:
if (use_locking ? readLocked() : readUnlocked())
{
...
}
是的,你可以。
三元条件运算符是表达式,从最后两个参数的类型推断出类型。和表达式可以用作if
语句中的条件。
一个例子是变态
if (unemployed ? false : true)
站在
中if (!unemployed)
自然,是否是良好要做的事情取决于上下文。
我知道这个问题是旧的。但是我来了我最近在代码中使用的另一个有用的示例:
if ( by_start ? (tmp_segment1->start > tmp_segment2->start) :
(tmp_segment1->end > tmp_segment2->end) )
{
...
}
基本上是关于按元素的成员变量启动或结束对列表进行排序。如果代码变小,则使用三元运算符,但仍然可以读取。
相关文章:
- 三元运算符和 if constexpr
- 在 c++ 中三元运算符中不允许继续(关键字)吗?
- 三元运算符在返回语句中给出意外的结果
- Boost Spirit x3 条件(三元)运算符解析器
- 递归中三元运算符的奇怪行为
- 如何在三元条件运算符中添加换行符和连接? :在 C++ 中
- 错误:三元运算符无法在对象中正常工作"cout"
- 是否允许三元运算符在C++中计算两个操作数?
- 有条件地选择带有 decltype() 和三元运算符的类型
- 三元运算符在C++中的意外行为
- 有没有办法将 for 循环结果返回到像三元运算符这样的函数中?
- 变量值,在三元运算符之后
- 是否可以在C++中使用三元运算符在 if 语句中选择比较运算符?
- c++中的增量和三元运算符优先级
- C++中三元运算符的意外行为
- 用于返回开关的三元运算符
- 替换模板元编程中的三元运算符
- 三元运算符 '?:' 在 4.9.0 之前的 GCC 版本中推断出不正确的类型?
- 在 std::map 上使用三元运算符和 std::更大的附加参数
- C++中的三元条件运算符问题