The ? operator is a ternary (three-way) operator.
Java ternary operator is basically a short form of simple if statement.
The ? has this general form:
expression1 ? expression2 : expression3
expression1 can be any expression that evaluates to a boolean value.
If expression1 is true, then expression2 is evaluated.
Otherwise, expression3 is evaluated.
The expression evaluated is the result of the ? operation.
Both expression2 and expression3 are required to return the same type,
which can't be void.
Here is an example of ? operator:
public class Main { public static void main(String[] argv) { int denom = 10; int num = 4;/* ww w.java2s. co m*/ double ratio; ratio = denom == 0 ? 0 : num / denom; System.out.println("ratio = " + ratio); } }
The output:
Here is another program that demonstrates the ? operator.
It uses it to obtain the absolute value of a variable.
public class Main { public static void main(String args[]) { int i, k;//from w w w . j a va 2s . c o m i = 10; k = i < 0 ? -i : i; System.out.print("Absolute value of "); System.out.println(i + " is " + k); i = -10; k = i < 0 ? -i : i; System.out.print("Absolute value of "); System.out.println(i + " is " + k); } }
The output generated by the program is shown here: