黑马程序员技术交流社区
标题:
赋值问题。
[打印本页]
作者:
毛豆豆
时间:
2015-8-7 22:36
标题:
赋值问题。
int a = 1;
a = a++;
a = ++a;
System.out.println(a);
输出a的结果等于?
作者:
要踏实小伙子
时间:
2015-8-7 23:03
结果等于 2
修改代码,你比较容易理解
int a = 1;
int b=0;
int c=0;
b= a++; /* 此处b=1 a的初始值1赋值给b,a再后子增1就跟b 没关系了,运算完了你加你的,跟b没关系了。
这里我只是换了一个变量名来接收数据,跟你的a=a++是一个效果 */
c = ++b;/* 此处b已经的值已经是1了 ,上一句赋给它的,然后因为++放前面,先自增1 所以b=2 然后再赋值
给c, 这里一样 我换了一个变量名来接收数据 ,跟你的a=++a是一个效果 */
System.out.println(a);
System.out.println(b);
System.out.println(c);
你只要记住 a++ 参与运算的话 就是先用它原来的值 然后再加1
作者:
何时指点江山
时间:
2015-8-7 23:25
其实只要理解a++和a++的不同就好算了。这两个在单独存在的时候是一样的,但是加上其他的运算符的时候,a++是表示先做其他的运算然后自增,而++a是先自增再做其他的运算。
作者:
bgxpf
时间:
2015-8-7 23:33
很简单的,楼上说的不错
作者:
流水王朝
时间:
2015-8-7 23:43
呃,前来观摩
作者:
谭威威威威
时间:
2015-8-8 10:16
应该是2吧
作者:
真实姓名被注册
时间:
2015-8-8 11:36
a=a++;
表达式的值是1,a自增一次,但赋值的时候仍把表达式的值1赋值给a,a仍是1
a=++a;
a自增一次,表达式的值为2,赋值给a,a的值是2
作者:
毛豆豆
时间:
2015-8-8 14:29
谭威威威威 发表于 2015-8-8 10:16
应该是2吧
明白了 抓到一名同学
作者:
godboy001
时间:
2015-8-8 15:43
不是很好的理解的吧,学习了
作者:
谭威威威威
时间:
2015-8-8 15:51
毛豆豆 发表于 2015-8-8 14:29
明白了 抓到一名同学
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2