你如何减去负整数但增加一个积极的?

Shi*_*tra 4 c# integer increment decrement

简单的问题,虽然我不确定是否有答案.我正在处理一个可以是正数或负数的整数.

但是,我想根据符号增加或减少它.

例如,如果它是"2",则添加1并使其为"3".

如果它是"-2",则减去1并使其为"-3".

我已经知道通过添加if语句并有两个单独的递增和递减部分来解决这个问题的明显方法.但是,我试图限制我使用的代码量,并且想知道是否有类似的方法从内置函数或过程执行此操作.

And*_*rei 6

您可以使用内置的Math.Sign:

int a = 1;
int b = a + Math.Sign(a); // b == 2

int c = -1;
int d = c + Math.Sign(c); // d == -2
Run Code Online (Sandbox Code Playgroud)

甚至更短的版本,在评论中建议:

int a = 1;
a += Math.Sign(a); // a == 2

int c = -1;
c += Math.Sign(c); // c == -2
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这可以简化为“ a + = Math.Sign(a);”,它比其他解决方案要短,并且仍然可读。因此,这可能是最佳选择。 (2认同)

Dre*_*ild 5

试试吧:

int IncOrDec(int arg)
{
    return arg >= 0 ? ++arg : --arg;
}
Run Code Online (Sandbox Code Playgroud)