A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 549208564 中级黑马   /  2016-1-3 02:23  /  3130 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

      也许这个很简单,但就我就是不懂为什么
  public static void main(String[] args) {
             int x=4;
             int y=3;
             y=++x;//5  这是y会什么是5,可以解为y=x++
             y=x++;//4 那为什么这里y只等于4呢,想不明白 ,请大神指点
              System.out.println(y);
        }

15 个回复

倒序浏览
本帖最后由 晓寒轻 于 2016-1-3 12:26 编辑

这个问题应该所有视频都会讲到的,++在左边的是右边的加1之后直接进行左边的运算,也就是进行赋值,所以第一个y=++x,是先让x=x+1,x=5,然后把5的值赋给左边的y
++在右边的是只进行加1,而不进行赋值运算(=就是赋值运算),所以y=x++,x=x+1之后就没有再进行赋值的运算。
这个记住这两个的区别就行了,没什么为什么的。左边++就是要赋值的,右边++不赋值给左边,对右边的变量没什么影响,都是加了1

点评

谢谢,很详细  发表于 2016-1-3 20:16
回复 使用道具 举报
x++:指的是   先去参与运算,然后在把结果在+1;
++x:指的是  先+1,然后在参与运算。
回复 使用道具 举报
这个问题很简单,多听几遍课.
回复 使用道具 举报
x++是先赋值然后自增,执行完x=5,y=4,而++x是先自增再赋值,执行完x=5,y=5
回复 使用道具 举报
首先++在左还是右,最终x都会+1,这是没有疑问的。关键是赋值给y的是几,这个可以简单这样记,挨着等号的是谁就先运算谁。y=++x,是++挨着等号,也就是先把x+1,这就是++的运算,然后赋值给y,所以y是5.
回复 使用道具 举报
y=x++;是先把x原来的值4赋给y,然后x自己+1.
回复 使用道具 举报
++x 是前加加,先自增一再赋值
x++ 是后加加,先赋值再增加一
回复 使用道具 举报
y=++x;  先把x的值先自增一次,再把 x的值赋给y ;
y= x++; 先把x的值 赋给y,  然后x 的值再自增一次.
回复 使用道具 举报
这是先运算后赋值,还是先赋值后运算的问题,楼上大神已解答,我就不多嘴了
回复 使用道具 举报
x++:指的是   先去参与运算,然后在把结果在+1;
++x:指的是  先+1,然后在参与运算。
回复 使用道具 举报
顺序不同
回复 使用道具 举报
++x就是先让X加1,即X=4+1=5,然后把5赋给y;X++就是先把X的值附给y,X再加1.
回复 使用道具 举报
y=++x是先加后赋值;
y=x++是先赋值后加
回复 使用道具 举报
小五哥 来自手机 中级黑马 2016-1-4 00:40:13
15#
前+加之后的值,后➕就是加之前的值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马