c++ if else语句的简写
shorthand c++ if else statement
我很好奇是否有一个简短的语句:
if(number < 0 )
bigInt.sign = 0;
else
bigInt.sign = 1;
我看到了if a <B等。>
我不确定如何正确地做这件事,希望能得到一些建议。
谢谢!
其实我是在你们回答之前才想出来的。
最短解为bigInt.sign = (number < 0) ? 0 : 1
使用三元运算符的基本语法如下:
(condition) ? (if_true) : (if_false)
对你来说是这样的:
number < 0 ? bigInt.sign = 0 : bigInt.sign = 1;
try this:
bigInt.sign = number < 0 ? 0 : 1
是:
bigInt.sign = !(number < 0);
!
运算符总是求值为true
或false
。当转换为int
时,它们分别成为1
和0
。
当然这相当于:
bigInt.sign = (number >= 0);
这里的括号是多余的,但我添加它们是为了清楚。所有比较运算符和关系运算符的值都是true
或false
。
根据您在代码中使用它的频率,您可以考虑如下:
宏观#define SIGN(x) ( (x) >= 0 )
内联函数
inline int sign(int x)
{
return x >= 0;
}
那你就直接写:
bigInt.sign = sign(number);
你也可以试试这个:
bigInt.sign = (number<0)*0 + (number>=0)*1;
如果我们需要分配0
和1
以外的值,则可以使用以下代码:
bigInt.sign = (number<0)*(replacement_of_0) + (number>=0)*(replacement_of_1);
相关文章:
- 我的简单if-else语句是如何无法访问的代码
- Insert函数不适用于2 if语句C++
- If语句未被求值C++
- C++嵌套if语句,基本货币交换
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 是否可以使用if constexpr删除控制流语句
- 我似乎对if/else的基本语句有问题:/
- If语句在c++中被忽略
- 比较if语句中的数组值和int值
- 以在Qt中的IF语句中设置时间延迟
- Craps游戏问题,忽略if语句
- c++:定义if语句中的模板
- C++嵌套的 If 语句中,它无法按预期工作
- 如果中的多个语句是否与多个 if 相同?
- C++ If/Else 语句被跳过
- 使用语句if时逻辑的问题
- 如何添加语句if-else
- 如何将语句if(isalpha(c))从c++转换为MIPS ?
- 在if语句if C++中创建对象时出现作用域问题
- if语句-if/else和参数放置C++