How to check whether a number is positive/zero/negative without using conditional statements in Java

1 Answer

0 votes
public class Main {
    public static void main(String[] args) {
        int n = 89;

        // create text labels for each possible case
        String[] result = {
            "negative",  // index 0
            "zero",      // index 1
            "positive"   // index 2
        };

        // compute an index without using any conditional statements
        // (n > 0) becomes 1 if true, 0 if false
        // (n < 0) becomes 1 if true, 0 if false
        // index = 1 + (n > 0) - (n < 0)
        int index = 1 + (n > 0 ? 1 : 0) - (n < 0 ? 1 : 0);

        // print the classification
        System.out.println(result[index]);

        /**
           Checks:

           n = -3
           (n > 0) = 0
           (n < 0) = 1
           index = 1 + 0 - 1 = 0
           result = negative

           n = 0
           (n > 0) = 0
           (n < 0) = 0
           index = 1 + 0 - 0 = 1
           result = zero

           n = 89
           (n > 0) = 1
           (n < 0) = 0
           index = 1 + 1 - 0 = 2
           result = positive
        */
    }
}


/*
run:

positive

*/

 



answered Jun 27 by avibootz

Related questions

...