a = x ? b : c; The types b and c should be compatible. : Conditional Operator « Operators « SCJP






public class MainClass {
  public static void main(String[] argv) {

    boolean x = true;
    int a = 0;
    int b = 1;
    double c = 2D;

    a = x ? b : c;

    System.out.println();
  }
}
Type mismatch: cannot convert from double to int








2.9.Conditional Operator
2.9.1.The conditional operator ?: (a ternary operator)
2.9.2.The ternary operator ? : has three operands and takes the following form: operand1 ? operand2 : operand3
2.9.3.a = x ? b : c; The types b and c should be compatible.
2.9.4.a = x ? b : c; The type of the expression x should be boolean.
2.9.5.nest conditional operators into one statement