Java字符增量
我正在执行以下代码Java字符增量,java,char,post-increment,Java,Char,Post Increment,我正在执行以下代码 class First { public static void main(String arg[]) { char x= 'A'; x = x++; System.out.println(x); } } 这里的输出是A。 我的问题是为什么在打印之前x没有增加 class First { public static void main(String arg[])
class First
{
public static void main(String arg[])
{
char x= 'A';
x = x++;
System.out.println(x);
}
}
这里的输出是A。
我的问题是为什么在打印之前x没有增加
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);
}
}
增量后(x++):首先执行语句,然后将值增加1
预增量(++x):首先将值增加1,然后执行语句
增量后(x++):首先执行语句,然后将值增加1
增量前(++x):首先将值增加1,然后执行语句。您使用的增量后运算符不正确-不需要使用赋值。在这种情况下,它破坏了你的努力 对于上下文,请记住后增量运算符增加值,并返回旧值。也就是说,
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
也会做同样的事情。您使用的增量后运算符不正确-您不需要使用赋值。在这种情况下,它破坏了你的努力
对于上下文,请记住后增量运算符增加值,并返回旧值。也就是说,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
也会做同样的事情代码>刚才说的x++代码>?然后发生了什么?是的。但是,在赋值之前它并没有递增代码>刚才说的x++代码>?然后发生了什么?是的。不过,在分配之前,它并没有递增。