java吧 关注:1,287,022贴子:12,814,575
  • 14回复贴,共1
a=1 ;
a=a++;
S.out.print(a);值为什么等于1


IP属地:北京来自iPhone客户端1楼2013-11-04 18:04回复
    a++这个表达式为1 a变为2之后 又把a++的值赋给了自己 就变成1了


    2楼2013-11-04 18:08
    收起回复
      2025-11-12 02:49:29
      广告
      不感兴趣
      开通SVIP免广告
      这是因为“=”的优先级高的原因。在a=a++里面,会先做赋值,然后再++,所以打出来就还是1了。


      3楼2013-11-04 18:15
      收起回复
        先赋值再自加


        IP属地:北京来自Android客户端4楼2013-11-04 18:33
        回复
          java虚拟机的问题 是解释 c语言运行的话就是2


          IP属地:北京5楼2013-11-04 23:10
          回复
            a++和++a是先赋值后自增和先自增后赋值的不同,所以是1。


            IP属地:广东来自iPhone客户端6楼2013-11-04 23:43
            回复
              楼上跟明白啦,我就不多说啦
              ——来自 爱贴吧 Windows Phone 客户端


              来自WindowsPhone客户端7楼2013-11-04 23:44
              回复
                你试试++a吧!多试试就理解了。赋值运算不理解后面就不好掌握


                IP属地:广东来自iPhone客户端8楼2013-11-04 23:44
                回复
                  2025-11-12 02:43:29
                  广告
                  不感兴趣
                  开通SVIP免广告
                  a=a++ 新建一个变量叫a a++是先赋值后运算所以新的a值为1 然后老的a变为2 但是打印的a是新的a 所以打印结果为1


                  IP属地:四川来自Android客户端10楼2013-11-05 00:19
                  回复
                    挽尊


                    IP属地:广东来自iPhone客户端11楼2013-11-05 00:20
                    回复