java吧 关注:1,243,921贴子:12,717,147

为什么输出的是5 不是x一直等于2吗。求个大佬讲解一下

只看楼主收藏回复

为什么输出的是5 不是x一直等于2吗。求个大佬讲解一下


来自iPhone客户端1楼2018-04-11 22:53回复
    y是3
    default:y++;
    case 3:y++;
    自增了两遍不就是5了嘛


    IP属地:北京来自Android客户端2楼2018-04-11 23:01
    回复(5)
      哦哦,忘记了穿透


      来自iPhone客户端3楼2018-04-11 23:04
      回复
        走两次defauly,++两次Y等于五


        IP属地:河北来自iPhone客户端4楼2018-04-12 04:54
        收起回复
          我也在看这个视频


          IP属地:北京来自iPhone客户端5楼2018-04-12 08:09
          收起回复
            x=2,y自加一次,最后输出时是+y,也就是把y自加1后在输出,加了两次,所以是5,注意细节就好,最后是=+5,而不是=5


            IP属地:浙江来自手机贴吧6楼2018-04-12 08:22
            收起回复
              我也没看懂,我感觉应该是4期


              IP属地:重庆来自iPhone客户端10楼2018-04-12 09:25
              回复
                不是只在default里自增了一次吗


                IP属地:重庆来自iPhone客户端11楼2018-04-12 09:26
                回复
                  switch语句原理是跳转到case X位置执行剩下所有的语句(包括其他case里面的),直到最后或者遇见break为止
                  我的理解啊,就你这个代码来看,
                  先走的case 3,不满足,再走 case 4还不满足,最后走default,因为你的default后面没有break,所以会将default后面的依次执行,直到break出现


                  IP属地:四川12楼2018-04-12 09:47
                  收起回复
                    走了default y++; 因为没有break 继续往下走case3 y++ y自增两次 y一开始是3 结果是5


                    IP属地:广东来自Android客户端13楼2018-04-12 09:50
                    回复

                      调试下自己就知道了也就不会问了,学会debug


                      14楼2018-04-12 10:03
                      回复(12)
                        switch语句会先从上往下找那些有值的,如果没有符合的就会运行default,你这个default后面没有加break就会继续往下面执行直到遇到break


                        IP属地:广东来自Android客户端15楼2018-04-12 10:06
                        回复(4)
                          实际工作中请保持如下模式


                          16楼2018-04-12 10:27
                          回复(1)
                            这么简单的一道题目,看着某些人的回答能把我笑死


                            IP属地:浙江17楼2018-04-12 10:45
                            回复
                              没有break就没有结束循环,一直往下走,先走default,自增一次y=4,再走case3,y=5,遇到break结束循环,输出y=5,够详细了吧,以后把每一个后面都加上break,default放在最后面


                              IP属地:陕西18楼2018-04-12 10:47
                              回复(5)