Java Char增量

时间:2014-11-19 17:02:13

标签: java char post-increment

我正在执行以下代码

class First
{

 public static void main(String arg[])
        {
            char x= 'A';
            x = x++;
            System.out.println(x);
        }
}

这里的输出是A. 我的问题是为什么在打印之前没有增加x。

2 个答案:

答案 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然后执行语句。