黑马程序员技术交流社区

标题: y=++x写y=x++的区别 [打印本页]

作者: 549208564    时间: 2016-1-3 02:23
标题: y=++x写y=x++的区别
      也许这个很简单,但就我就是不懂为什么
  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);
        }
作者: 晓寒轻    时间: 2016-1-3 12:22
本帖最后由 晓寒轻 于 2016-1-3 12:26 编辑

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

作者: hard    时间: 2016-1-3 14:52
x++:指的是   先去参与运算,然后在把结果在+1;
++x:指的是  先+1,然后在参与运算。
作者: xianjian4720    时间: 2016-1-3 19:51
这个问题很简单,多听几遍课.
作者: junh_01    时间: 2016-1-3 21:03
x++是先赋值然后自增,执行完x=5,y=4,而++x是先自增再赋值,执行完x=5,y=5
作者: 黑色皮肤的马    时间: 2016-1-3 21:29
首先++在左还是右,最终x都会+1,这是没有疑问的。关键是赋值给y的是几,这个可以简单这样记,挨着等号的是谁就先运算谁。y=++x,是++挨着等号,也就是先把x+1,这就是++的运算,然后赋值给y,所以y是5.
作者: 黑色皮肤的马    时间: 2016-1-3 21:30
y=x++;是先把x原来的值4赋给y,然后x自己+1.

作者: 雪中飞    时间: 2016-1-3 22:03
++x 是前加加,先自增一再赋值
x++ 是后加加,先赋值再增加一
作者: n_Nie1991    时间: 2016-1-3 22:17
y=++x;  先把x的值先自增一次,再把 x的值赋给y ;
y= x++; 先把x的值 赋给y,  然后x 的值再自增一次.
作者: SpiritsOfBlack    时间: 2016-1-3 22:19
这是先运算后赋值,还是先赋值后运算的问题,楼上大神已解答,我就不多嘴了
作者: wyb414    时间: 2016-1-3 22:27
x++:指的是   先去参与运算,然后在把结果在+1;
++x:指的是  先+1,然后在参与运算。
作者: 云鱼    时间: 2016-1-3 23:03
顺序不同
作者: czhczhczh    时间: 2016-1-3 23:51
++x就是先让X加1,即X=4+1=5,然后把5赋给y;X++就是先把X的值附给y,X再加1.
作者: 无尽落寞    时间: 2016-1-4 00:10
y=++x是先加后赋值;
y=x++是先赋值后加
作者: 小五哥    时间: 2016-1-4 00:40
前+加之后的值,后➕就是加之前的值




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2