黑马程序员技术交流社区
标题:
a = a++
[打印本页]
作者:
chinfun
时间:
2013-10-26 20:48
标题:
a = a++
代码如下:
public class Demo01A {
public static void main(String[] args) {
int a = 5;
System.out.println(a); //5
a = a++; //a = a; ?a = a + 1;
System.out.println(a); //5
System.out.println(a); //5
}
}
为什么a的值不变呢?
作者:
李泰然
时间:
2013-10-26 21:00
int a = 4;
System.out.println(a++);
System.out.println(a);
你将这个代码运行一下你就明白啦
作者:
漫步人
时间:
2013-10-26 21:01
a = a++; //a = a; ?a = a + 1;
这是在一行上吗?
作者:
未知数|X|
时间:
2013-10-26 21:09
这个就是前++和后++,前++,例如进行的+操作,对于后++,是先用后加,a=a++;这样System.out.println(a++);这个值肯定也是5的,因为这时候还没有进行加操作,先把原来的值也就是5赋给了a,才进行的加操作,后面输出的值5也就是你重新赋值的这个a了,如果你另写一变量,也就是 int temp=a++;然后再输出a的值这时候才会变成6,它把5赋给了temp之后才对自己加1操作
作者:
孙涛00
时间:
2013-10-26 21:37
a = a++; //a = a; ?a = a + 1;
a=a++;
运算是从后至前运算的
先看a++;
再看a=a;
a++是先拿来用,再自增,这时a的值是 5 ,这时假设a++中的a就是变量temp=5
将temp的值赋值给了a,a=5,temp++;temp=6;
所以a还是5,这样永远a=5;
作者:
MeryStyle
时间:
2013-10-27 14:10
本帖最后由 MeryStyle 于 2013-10-27 14:11 编辑
你好,后++的意思是在 其完成赋值操作之后本身再加一,你将a本身加一后的值 赋给一个中间变量,然后再将其输出就是6了。你第三个输出的仍是a本身罢了,并不是a加一之后的值。代码如下:
public class test {
public static void main(String[] args) {
int a = 5;
System.out.println(a); //5
a = a++; //a = a; ?a = a + 1;
System.out.println(a); //5
int temp=(a=a+1);
System.out.println(temp); //6
}
}
作者:
王东
时间:
2013-10-30 21:28
a++是先赋值再自加,++a是先自加,在赋值
作者:
qixing0918
时间:
2013-11-1 15:55
本帖最后由 qixing0918 于 2013-11-1 16:02 编辑
public static void main(String[] args) {
int a = 5;
System.out.println(a); //5
a = a++; //a = a; ?a = a + 1;
System.out.println(a); //5
a=(a=a++);
System.out.println(a); //5
a=(a=a+1);
System.out.println(a); //6
}
这说明了什么 a=(a=a++); 与a=(a=a+1); 是不一样的
我得出的结论是 a=a++ 想赋值 就变成 5++ 所以 a=a++没意义
a = ++a; 是 先a+1 变成a=6
作者:
451505680
时间:
2013-11-7 21:46
a=a++;计算过程是先取a的值5作为a++表达式的值5,然后将a的值自加为6,而在赋值时是把a++的值5赋给a,所以a的值有6变为5,所以System.out.println(a); 输出值是5
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2