多选题 Given:
public class ArithmeticResultsOutput {
public static void main(String[] args) {
int i = 0;
int j = 0;
if(i++ == ++j)
System.out.println("True: i="+i+"'j="+j);
} else {
System.out.println("False: i="+i+"'j="+j);
}
}
}
What will be printed to standard out?
  • A. True: i=0, j=1
  • B. True: i=1, j=1
  • C. False: i=0, j=1
  • D. False: i=1, j=1
【正确答案】 D
【答案解析】j的值在计算之前已经前递增了,但是i的值却没有。因此,表达式计算结果为false的布尔值,因为0不等于1(即i=0和j=1)。表达式计算完之后,但在相关的打印语句执行之前,i的值已经后递增(即(i=1))。因此,正确的答案是False: i=1, j=1。A、B和C不是正确答案,理由如正确答案的解释。