给定Java代码片段:`int x = 2, y = 3; boolean a = (x++ > 2) | (++y > 3);`,执行该代码后,变量 `x` 和 `y` 的值分别为多少,且 `a` 的值为真还是假?
答案解析
代码中使用了 `|` (按位或)运算符,该运算符会先计算运算符两侧的所有表达式。首先,`x++ > 2` 的值为 false,且 `x` 的值变为3。其次,`++y > 3` 会先将 `y` 自增为 4,然后判断是否大于 3,结果为 true。最终,`false | true` 的结果为 true。因此,x=3, y=4, a=true。选项B错误,因为y最终值为4;选项C错误,因为x值最终为3,且a为true;选项D错误,因为a为true。
正确答案:A