将正数转换为负数 - iOS

4
我有一个简单的应用程序,其中包含一个整数。我想检查整数的值,并在整数是正数时将其更改为负数。如果整数当前为负数,则希望检查并将其更改为正数。以下代码是我想到的:
```python if my_integer > 0: my_integer = -my_integer elif my_integer < 0: my_integer = abs(my_integer) ```
请注意,这里使用了Python编程语言的if/else语句来检查整数是否为正数或负数,并根据情况进行更改。
int number;

// number gets set.... etc...

// Now do number check.
if (number > 0) {
    number = (0 - number);
}

else if (number < 0) {

    // Since number is negative, lets try to
    // minus minus the number and make it positive.
    number = (0 - number);
}

我的问题是,我的方法是否正确,并且更重要的是实现这个功能的好方法?我读到可以使用一个叫做abs()的方法,但据我所知,它不安全?

谢谢您的时间,丹。


在我看来没问题。除非你要进行成千上万次的转换,否则尝试优化它没有太大意义。不过,(0 - number) 可以被简单地替换为 -number。 - Jaciq
2
哦... number = -number; 还是 number *= -1; ? - Kegluneq
4个回答

8

请看一下你的代码,让我们将其概括如下:

 // Now do number check.
if (number > 0) 
{
  number = (0 - number);
}
else if (number < 0) 
{
  // Since number is negative, lets try to
  // minus minus the number and make it positive.
  number = (0 - number);
}

显然,在两个if分支中的语句是相同的。所以你可以写成:

显然,在两个if分支中的语句是相同的。所以你可以这样写:

// Now do number check.
if (number > 0 || number < 0)  // || means logical or
{
  number = (0 - number);
}

如果您考虑到-0等于0,您可以删除整个if语句:

number = (0 - number);

此外,您可以编写...
number = -number

你也可以使用其他答案中所建议的乘法,或按照预期使用乘法。


4

只需使用

int number;

number *= -1;

1
这似乎也正常工作:

-(number)

-1
你可以写成 int myNum *= -1; 这会将你的数字变为负数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接