编写 if then else 类型语句的简洁方法
Concise way to write a if then else type statement
假设我有一个标准,如果该条件为真,我想添加一个增量,如果它为假,则做相反的操作(减去)。
bool bBoolean;
int iDelta;
int iQuantity;
有没有更简洁优雅的方式来编写这段代码?我的意思是不要重复关键字iQuantity和iDelta。
if(bBoolean)
iQuantity -= iDelta;
else
iQuantity += iDelta;
我能想到的最短的事情是:
iQuantity += (bBoolean) ? -iDelta : iDelta;
编辑:这通常被称为三元语句,尽管它的专有名称(在标准中称为)是"条件表达式"或"条件运算符"。
(感谢Rune的正式名称。
这是三元运算符。有些人不赞成它的潜力不如if...else
那么清楚。我喜欢它,但要小心。
int sign = criteria ? -1 : 1;
quantity += (delta * sign);
iQuantity += (1-2*bBoolean)*iDelta;
在某些处理器上,额外的算术比分支快。
为什么不:
int tmpDelta = iDelta;
if (iBoolean)
{
tmpDelta = -tmpDelta;
}
iQuantity += tmpDelta;
对我来说,当我编写或阅读代码时,我更喜欢尽可能直接的东西。这表示代码将始终更新iQuantity
,并且如果iBoolean
为真,则更新将被反转。
编辑:更新不修改iDelta
。
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 通过方法访问结构
- 声明高维向量的更简洁的方法
- 使用通用函数指针参数化函数模板的简洁方法
- 在 Clang 中禁用特定警告实例的简洁方法
- 将多个值与同一变量进行比较时'!='运算符最简洁的方法是什么?
- 确定程序本身是否具有对文件的特定访问权限的最简洁的方法是什么
- 犰狳C ++:将矩阵的每一行乘以向量的高效简洁的方法
- Rcpp:比较从 R 数据帧派生的字符串的简洁方法
- 是否有一种简洁的方法可以将文本输出到调试窗格
- 编写 if then else 类型语句的简洁方法
- 在可变参数模板中使用填充程序的更简洁方法
- 在构造过程中是否有一种简洁的方法可以派生成员的类型?
- c++:访问大型数据集中的重成员变量的最有效和简洁的方法
- 清除地图和删除内容的最简洁的方法是什么?
- C++ 我知道数组长度,但想知道是否是一种更简洁的数组元素定义方法
- 最简洁的检查一个数是否落在其他两个数之间的方法
- 将空范围传递给接受一对迭代器的函数的干净/简洁的方法是什么?
- 在c++ 11中禁用复制类的最简洁的方法
- 简洁的计算 #define 方法