java吧 关注:1,293,641贴子:12,828,217
  • 9回复贴,共1

为什么第一遍执行输入语句这里不会停下来

只看楼主收藏回复



IP属地:上海来自Android客户端1楼2021-04-02 19:35回复
    没有break会重复循环


    IP属地:湖南来自Android客户端2楼2021-04-02 20:14
    回复
      2026-01-05 18:54:45
      广告
      不感兴趣
      开通SVIP免广告
      While true 会一直循环。在输入错误情况下依然会从while true内从头开始。要跳出循环就在29加break。


      IP属地:福建来自Android客户端4楼2021-04-02 23:00
      回复
        因为第一次共输入了两个字符1+\n,nextInt读了1,nextLine读了\n,获取到数据了,因此不会停下来。


        IP属地:广东5楼2021-04-03 00:04
        回复
          这是nextint()和nextline()的冲突问题, 你前面输入了 1+回车,nextint()这个方法只会抽取输入内容中的int型数据,留下了一个回车,当你匹配到case1并执行nextline()的时候,nextline()会将nextint()留下的回车抽取,然后判定你已经输入完毕了,而此时你输入的只是一个空字符串,所以执行最后的else,现在学的浅,解决办法就是在nextint()后面,再加一个不用字符串变量指向的 scan.nextline();就行


          IP属地:广东来自Android客户端7楼2021-04-03 00:36
          回复
            五楼和七楼说的对


            IP属地:重庆来自Android客户端8楼2021-04-03 07:05
            回复
              善用debug


              IP属地:广东来自Android客户端9楼2021-04-03 11:30
              回复
                看输出,是走的最后的eIse,没有break,继续循环了,while(true)是死循环,不判断一直运行


                来自Android客户端10楼2021-04-03 13:36
                回复
                  2026-01-05 18:48:45
                  广告
                  不感兴趣
                  开通SVIP免广告
                  你把c和("N")换一下


                  IP属地:湖北来自Android客户端11楼2021-04-03 14:03
                  回复
                    第一次执行的时候把回车吃了,你可以用next()


                    IP属地:上海来自Android客户端12楼2021-04-04 07:30
                    回复