Java Ternary Operator

Java includes a special ternary (three-way) operator that can replace certain types of if-then-else statements. This operator is the ?. It can seem somewhat confusing at first, but the ? can be used very effectively once mastered.

Here is the general form to use ternary operator (?) in Java:

expression1 ? expression2 : expression 3

Here, expression1 can be any expression that evaluates to a boolean value. If expression1 is true, then expression2 is evaluated; otherwise, expression3 is evaluated. The result of the ? operation is that of the expression evaluated. Both the expressions i.e., expression2 and expression3 are required to return the same (or compatible) type, which can't be void.

Here is an example of the way that the ? is employed:

ratio = denom == 0 ? 0 : num / denom;

When Java evaluates the above assignment expression, it first looks at the expression to the left of the question mark. If denom equals zero, then the expression between the question mark and the colon is evaluated and used as the value of the entire ? expression. If denom does not equal zero, then the expression after the colon is evaluated and used for the value of the entire ? expression. The result produced by the ? operator is then assigned to the ratio.

Java Ternary Operator (?) Example

Following is a example program that demonstrates the ? operator. It uses ? to obtain the absolute value of a variable.

/* Java Program Example - Java Ternary Operator (?)
 * This program demonstrates the ? Operator */

public class JavaProgram
{   
    public static void main(String args[])
    {
        
        int i, k;
        
        i = 10;
        k = i < 0 ? -i : i;     // get absolute value of i
        
        System.out.println("Absolute value of " + i + " is " + k);
        
        i = -10;
        k = i < 0 ? -i : i;     // get absolute value of i
        
        System.out.println("Absolute value of " + i + " is " + k);
        
    }
}

When the above Java program is compile and executed, it will produce the following output:

java ternary operator

Java Online Test


« Previous Tutorial Next Tutorial »