黑马程序员技术交流社区
标题:
菜鸟跪求各位老鸟解惑
[打印本页]
作者:
米家小九
时间:
2015-2-23 23:12
标题:
菜鸟跪求各位老鸟解惑
不多说废话int x = 2;
int x1 = x++;
int x2 = (x1)++;
System.out.println("x1="+x1+" "+"x2="+x2);
x = x++;
System.out.println(x);
x = x++;
System.out.println(x);
打印结果是: x1=3 x2=2
3
3
不明白,x1不应该是先赋值,在自增吗?就是x1等于3,X2怎么会等于2呢?不该是4了吗?
x自增不该是加1,是3,第二次自增不该是4了吗?
让大家见笑了,可是真的是不明白,希望各位给小弟讲下,不胜感激
作者:
血色@残阳
时间:
2015-2-24 00:15
其实这个题非常简单,我昨天就发了一个专门讲这个的帖子
http://bbs.itheima.com/thread-171193-1-1.html
如果还不明白,你就把输出语句换个位子,在int x1 = x++;后面马上输出x1,你看等于几?然后在int x2 = (x1)++;后面单独输出x1和x2,你就明白了,你的输出语句有很大迷惑性,这才导致你不理解
作者:
米家小九
时间:
2015-2-24 00:17
没人理我,我看了半天,又回头仔细看看优先级,自己又明白了,好尴尬的说
int x = 2;
int x1 = x++;
int x2 = (x1)++;
System.out.println("x1="+x1+" "+"x2="+x2);
x = x++;
System.out.println(x);
x = x++;
System.out.println(x);
定义x=2, x1=x++;则先把x=2的值付给了x1,然后x++;此时x=3,x1=2;然后x2=x1++,同理,x1的值2赋给x2,然后x1自增为3,所以x1结果为3,x2结果为2
下面的x=x++得到的值全是x第一次自增后的值3,然后下面的两个是先赋值,后自增,所以x结果都为3,突然感觉好惭愧啊,
作者:
huangchunwei
时间:
2015-2-24 10:04
优先级的问题:lol:lol
作者:
fanshuai
时间:
2015-2-24 10:10
本帖最后由 fanshuai 于 2015-2-24 10:14 编辑
米家小九 发表于 2015-2-24 00:17
没人理我,我看了半天,又回头仔细看看优先级,自己又明白了,好尴尬的说
int x = 2;
...
嗯。。。。。。。。。
作者:
自学小番薯
时间:
2015-2-26 00:07
进来学习了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2