The ? 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 aboolean
value.- If expression1 is
true
, thenexpression2
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