java吧 关注:1,236,624贴子:12,705,732
  • 14回复贴,共1

无基础自学Java,做题目的时候不理解,求解答。

只看楼主收藏回复


为什么 i 等于 5。。。。


IP属地:浙江1楼2019-12-02 16:33回复
    int i=1
    int j= i+1(此时i=1,这行结束后i=2)
    if(i此时i为2=(++j ) &&(i++此时i为2)==j)
    满足if条件
    执行i=i+j(i经过两次自+i此时为3j为2)
    所以i为5


    来自Android客户端2楼2019-12-02 16:46
    收起回复
      j = i++ // j = 1, i = 2
      i == (++j)// i == j == 2
      (i++) == j // i == 3 j == 2(2 = 2)
      i + j = 5


      IP属地:江苏3楼2019-12-02 16:52
      收起回复
        这题与段位不符呐


        IP属地:河南4楼2019-12-02 16:54
        收起回复
          你打断点,debug看每一行i和j的值,
          你看到i++和++i就把它看成是表达式,也就是说表达式或者你先死记m=i++相当于m=i,n=++i相当于n=i+1,i++底层原理是返回+1之前的值,++i相当于返回+1后的值,同理可得i--和--i




          来自Android客户端5楼2019-12-02 16:56
          收起回复
            我以为这种没有营养纯粹恶心人的题目只会出现在大学教材的课后题里


            IP属地:浙江7楼2019-12-03 10:37
            收起回复
              可以关注一下 知识追寻者 java纯技术分享


              IP属地:福建来自手机贴吧8楼2019-12-03 19:06
              回复
                第4行:j=i++;表示j=i,然后系统再做一步i=i+1,执行完j=1,i=2;
                第五行左边判断:i==(++j);表示系统先做j=j+1,然后判断i==j,这个判断成立的你敢相信?


                来自Android客户端9楼2019-12-04 00:11
                回复