简单的问题,虽然我不确定是否有答案。 我正在处理一个可以是正数或负数的整数。
但是,我想根据符号增加或减少它。
例如,如果它是“2”,则添加1并将其设为“3”。
如果是“-2”,则减1并使其为“-3”。
我已经知道通过添加if语句并具有两个单独的递增和递减部分来解决此问题的明显方法。但是,我试图限制我使用的代码量,并且想知道是否有类似的方法从内置函数或过程执行此操作。
答案 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) )));
}
}
}