是否有一个c ++运算符可以用于for循环,它可以根据变量之一是否小于或大于0来对变量进行加或减。 例如
int a;
int b;
for(int i=0;i<some_number; i++)
result = a +< b
result = a-> b
答案 0 :(得分:3)
没有
您可以与?:
运算符结合使用。
int a;
int b;
for(int i=0;i<some_number; i++)
result = (a < b)? result+b:result-b;
如果我理解你的例子,那就是。
->
是现有的解除引用运算符。
运算符?:
等同于if...else
结构。如果?
之前的语句求值为true
,则?
之后的语句将被执行,否则:
之后的语句将被执行。
答案 1 :(得分:1)
你想要这样的东西吗?
result += a > 0 ? b : -b;
请注意,如果a == 0
,这将减去b,这不是您要求的。
答案 2 :(得分:1)
不直接,但ternary operator已接近。
for(int i=0;i<some_number; i++)
result = (a > 0)?(a):(b);
当a大于0且result = a
为else时,此行等同于result = b
。
它也可以写成result = a?a:b;
,但更长的形式更具可读性。
答案 3 :(得分:0)
不确定这是否有任何帮助?
result = a + (b*(a < b));
result = a - (b*(a > b));
基本上,(a < b)
被转换为布尔值,基本上是1(真)或0(假)。 b
乘以0当然为零,因此不添加任何内容,而b
乘以1恰好是b
的值。