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

时间:2013-06-25 11:52:49

标签: c# integer increment decrement

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

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

例如,如果它是“2”,则添加1并将其设为“3”。

如果是“-2”,则减1并使其为“-3”。

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

5 个答案:

答案 0 :(得分:5)

试一试:

int IncOrDec(int arg)
{
    return arg >= 0 ? ++arg : --arg;
}

答案 1 :(得分:5)

您可以使用内置Math.Sign

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

int c = -1;
int d = c + Math.Sign(c); // d == -2

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

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

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

答案 2 :(得分:3)

只需使用这样的三元运算符: -

num >= 0 ? ++num : --num;

答案 3 :(得分:0)

如果您不希望混乱代码,可以使用Ternary Operators;

int number = (original > 0) ? original + 1 : original - 1;

答案 4 :(得分:0)

using System;

namespace posneg
{
    class Program
    {
        static void Main(string[] args)
        {
            int num = Int32.Parse(args[0]);

            Console.WriteLine(( num + ( num / Math.Abs(num) )));

        }
    }
}