Thursday, April 28, 2011

Check if Integer is Positive or Negative - Objective C

Hello,

How can I tell in objective-c coding if an integer is positive or negative. I'm doing this so that I can write an "if" statement stating that if this integer is positive then do this, and if its negative do this.

Thanks,

Kevin

From stackoverflow
  • if (x >= 0)
    {
        // do positive stuff
    }
    else
    {
        // do negative stuff
    }
    

    If you want to treat the x == 0 case separately (since 0 is neither positive nor negative), then you can do it like this:

    if (x > 0)
    {
        // do positive stuff
    }
    else if (x == 0)
    {
        // do zero stuff
    }
    else
    {
        // do negative stuff
    }
    
    BlueRaja - Danny Pflughoeft : 0 is positive now? :)
    Deniz Acay : most mathematicians accept 0 as a positive value
    Eiko : Until they discover functions like log(x).
    Paul R : @BlueRaja - Danny Pflughoeft: well it doesn't have a `-` in front of if, so that's good enough for me. ;-)
    BlueRaja - Danny Pflughoeft : @Deniz: Mathematicians say 0 is a *non-negative* value; but it's not *positive*.
    Deniz Acay : @BlueRaja - Danny Pflughoeft: if...else statemens evaluate logical expressions as true/false, so for computer "if it is not negative, it is positive".
    Eiko : @Deniz Acay: Then please do a if(-1) printf("Wow I'm positive"); and fasten your seatbelts.... C takes everything != 0 as true.
    Deniz Acay : That's why i hate C :)
    JWWalker : @Deniz Acay: I've never heard of mathematicians accepting 0 as positive (and I used to be a math professor). Mathematicians use the word "nonnegative" all the time. They wouldn't need the word if it meant the same thing as "negative".
    Deniz Acay : Looks like i understood this "non-negative" word as "positive", so thanks for correction :)
  • Maybe I am missing something and I don't understand the quesiton but isn't this just

    if(value >= 0)
    {
    }
    else
    {
    }
    
  • -(void) tellTheSign:(int)aNumber
    {
       printf("The number is zero!\n");
       int test = 1/aNumber;
       printf("No wait... it is positive!\n");
       int test2 = 1/(aNumber - abs(aNumber));
       printf("Sorry again, it is negative!\n");
    }
    

    ;-)

    Seriously though, just use

    if (x < 0) {
    // ...
    } else if (x == 0) {
    // ...
    } else {
    // ...
    }
    

    Don't overdo methods ans properties and helper functions for trivial things.

0 comments:

Post a Comment