java吧 关注:1,254,936贴子:12,745,448

不敢相信我的直觉了, 也不敢乱用++运算符了

只看楼主收藏回复

int h = 1;
h = h++;
System.out.println(h);
你猜打印几?(不执行自己猜哦)


IP属地:北京1楼2015-04-15 23:47回复
    1


    IP属地:河南2楼2015-04-15 23:49
    收起回复
      1?


      IP属地:湖北来自iPhone客户端3楼2015-04-15 23:49
      收起回复
        我觉得是h被赋予h的值1后,再加的1?


        来自Android客户端4楼2015-04-15 23:54
        收起回复
          查阅运算符优先级,这个我记不清,一般都是加括号


          IP属地:安徽来自Android客户端5楼2015-04-15 23:56
          收起回复
            h++应该是先赋值在执行+1操作,++h估计就等于2了


            IP属地:湖北来自Android客户端7楼2015-04-16 00:07
            回复
              1
              num++ 可以看成这种方法:
              int num=xx;
              public int numJiaJia(){
              int result=num;
              num=num+1;
              return result;
              }
              ------------------------以上是num++的概述,下面是楼主的题-------------------
              =是赋值符号,从最右边开始计算
              h++按照上面的方法,返回的是h改变之前的值,也就是1
              右边运算之后,h为2
              把1重新赋给h
              最后h为1


              IP属地:北京8楼2015-04-16 00:08
              回复
                不,不是++的问题,是你给自己赋值,你是逗逼吗,i=i++这种写法是要被公司扣工资的,如果是我的公司,我要开除这种人


                IP属地:上海来自Android客户端9楼2015-04-16 00:11
                收起回复
                  一般不会有人这样写代码的


                  IP属地:广东来自iPhone客户端10楼2015-04-16 00:11
                  回复
                    楼主你循环一次打印


                    来自Android客户端11楼2015-04-16 00:15
                    回复
                      我会告诉你java打出来1,C打出来2?


                      IP属地:江苏来自Android客户端12楼2015-04-16 00:18
                      收起回复
                        多研究研究运行原理也是极好的,别瞎扯淡了都


                        IP属地:北京13楼2015-04-16 00:20
                        回复
                          IP属地:北京14楼2015-04-16 00:21
                          回复
                            肯定是1,++的h已经不是原来的h了


                            IP属地:天津来自Android客户端15楼2015-04-16 00:21
                            回复