int k=0;
switch (k++) {
case 0: System.out.println("0 is "+k);
}
输出:
0是1
为什么1?它仍然在切换操作符中,并且必须在退出后递增。
答案 0 :(得分:3)
Postfix意味着它将在评估后递增,而不是在当前块之后递增。在这种情况下,它被评估,递增k,然后分支到评估。正是应该如此。
答案 1 :(得分:0)
switch语句的第一件事是处理表达式(k++)
。返回的结果与案例值进行比较。但由于k++
已经处理完毕,k
的值为1
。由于它是一个后缀运算符,返回的值是它递增之前的值。因此,返回0
,但执行表达式后的值为1
。