Mega Code Archive

 
Categories / Java Book / 001 Language Basics
 

0041 The QuestionMark Operator

The ? operator is a ternary (three-way) operator. 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; double ratio; ratio = denom == 0 ? 0 : num / denom; System.out.println("ratio = " + ratio); } } The output: ratio = 0.0 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; 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: Absolute value of 10 is 10 Absolute value of -10 is 10