4

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

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

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

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

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

4

5 回答 5

7

试试看:

int IncOrDec(int arg)
{
    return arg >= 0 ? ++arg : --arg;
}
于 2013-06-25T11:56:01.297 回答
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

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

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

int c = -1;
c += Math.Sign(c); // c == -2
于 2013-06-25T11:56:07.443 回答
3

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

num >= 0 ? ++num : --num;
于 2013-06-25T11:54:27.843 回答
1

如果您不想让代码混乱,您可以使用三元运算符

int number = (original > 0) ? original + 1 : original - 1;
于 2013-06-25T11:56:07.120 回答
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) )));

        }
    }
}
于 2013-06-25T12:07:40.220 回答