我正在执行以下代码
class First
{
public static void main(String arg[])
{
char x= 'A';
x = x++;
System.out.println(x);
}
}
这里的输出是A. 我的问题是为什么在打印之前没有增加x。
答案 0 :(得分:3)
您错误地使用了后增量运算符 - 您也不需要使用赋值。在这种情况下,它会破坏你正在尝试做的事情。
对于上下文,请记住,后增量运算符会增加值并返回旧值。也就是说,x++
大致相当于:
int x_initial = x;
x = x + 1;
return x_initial;
希望现在您可以看到为什么您的代码无法更改x
。如果展开它,它看起来像:
char x= 'A';
char y;
{
y = x;
x = x + 1;
}
x = y;
System.out.println(x);
并且分配的最终效果是将x
设置回原来的状态。
要修复 - 您只需拨打x++
即可。或者,如果您想明确某些任务的发生,x += 1
甚至只是x = x + 1
会做同样的事情。
答案 1 :(得分:2)
class First
{
public static void main(String arg[])
{
char x= 'A';
x = x++; // it is post increment as ++ sign is after x
System.out.println(x);
}
}
Post Increment(x ++):首先执行语句,然后将值增加一。
Pre Increment(++ x):首先将值增加1然后执行语句。