java吧 关注:1,266,305贴子:12,769,676

自学java遇问题求解

只看楼主收藏回复


最后结果为什么是2, 不是3?


1楼2016-03-01 20:43回复
    我输出了各个阶段的值, 又懵了


    3楼2016-03-01 20:46
    收起回复
      2025-06-26 14:19:30
      广告
      应该就是2吧。++x


      IP属地:河南来自Android客户端4楼2016-03-01 20:53
      回复
        百度一下,java try-finally机制


        IP属地:四川5楼2016-03-01 21:08
        收起回复
          你去ibm 网站查查finally 就能明白了,这个具体解释真的有点麻烦的


          IP属地:北京来自iPhone客户端7楼2016-03-01 21:10
          回复
            在try 那里自己加一个了,可是因为有finally 所以必须再加一次,再结束return 我自己理解的。


            来自Android客户端8楼2016-03-01 21:12
            收起回复
              第一个return 方法已经返回了


              IP属地:广西10楼2016-03-01 21:42
              收起回复
                你的程序遇到第一个return时就应该跳出语句了,但因为try finally机制还会执行finally内的语句,但不会在执行之后的语句了。所以后面的那个return根本就没执行


                来自Android客户端11楼2016-03-01 21:48
                收起回复
                  2025-06-26 14:13:30
                  广告
                  这颜色好炫酷


                  IP属地:广西来自iPhone客户端12楼2016-03-01 23:17
                  收起回复
                    return的是try里的值


                    IP属地:江苏来自Android客户端13楼2016-03-01 23:23
                    回复
                      我觉得是这样的,先执行try里面的++x,return还未执行,然后去执行finally的++x,最后再执行return,到时return返回的是上一个++x的值


                      来自Android客户端14楼2016-03-01 23:32
                      回复
                        try第一个return不就已经结束方法了么,书上说return可以直接结束方法


                        IP属地:上海来自Android客户端15楼2016-03-01 23:40
                        收起回复
                          我也在自学javase


                          IP属地:上海来自Android客户端16楼2016-03-01 23:41
                          收起回复
                            finally块之后的语句return,因为程序在try中已经return所以不再执行。


                            IP属地:江苏17楼2016-03-01 23:43
                            回复
                              2025-06-26 14:07:30
                              广告
                              借车~办事~还车(必须还)


                              来自Android客户端18楼2016-03-01 23:44
                              回复