C ++运算符(不确定)

时间:2011-10-21 20:42:19

标签: c++ operator-keyword

是否有一个c ++运算符可以用于for循环,它可以根据变量之一是否小于或大于0来对变量进行加或减。 例如

int a;
int b;
for(int i=0;i<some_number; i++)
  result = a +< b
  result = a-> b

4 个答案:

答案 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的值。