将正数转换为负数-iOS

3 cocoa-touch integer numbers objective-c ios

我有一个带有整数的简单应用程序。我想检查整数值,如果它是正值,则将其从正值更改为负值。我还希望它检查整数是否为负数,如果当前为负数,则将其更改为正数。下面的代码是我的想法:

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);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,我的方法是否正确,更重要的是实现此功能的一种好方法?我读到您可以使用一种称为的方法,abs()但据我了解它并不安全?

丹,谢谢您的时间。

Ami*_*wad 6

看一下您的代码,让我们将其归结为:

 // 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);
}
Run Code Online (Sandbox Code Playgroud)

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

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

如果考虑到-0为0,则可以删除整个if

number = (0 - number);
Run Code Online (Sandbox Code Playgroud)

此外,您可以写...

number = -number
Run Code Online (Sandbox Code Playgroud)

……也可以按照其他答案的意图使用乘法。