java吧 关注:1,242,049贴子:12,715,666
  • 35回复贴,共1

各位大佬,do while循环结构不循环。。求帮忙

只看楼主收藏回复


输入1234都可以完美结束。现在问题是输入1234以外的数字,并不能无限循环:输入错误,请重新输入数字这个步骤。看了一个早上感觉是有问题,但是也没发现问题在哪里。。请各位大佬指点迷津,跪谢,在线等


1楼2017-10-02 12:11回复
    upup,希望更加多大佬可以看到指点迷津


    2楼2017-10-02 12:12
    回复
      在线等啊,求大佬


      3楼2017-10-02 12:14
      回复
        case4下的break去掉


        IP属地:江苏来自Android客户端4楼2017-10-02 12:17
        收起回复
          条件判断里面不能使用赋值语句,你可以这样写!isRight,其次Scanner这个扫描类很有意思,它在被new出来的时候就已经开始接受输入了,然后将所有输入放入缓冲区,最后你通过nextInt(),来将缓冲区的内容以int类型取出来,但是可能会缓冲区存储的不仅仅是整型,此时会拋出一个异常,然后如果你用hasNextInt(),就会事先对缓冲区的内容进行判断了,从而避免了数据接受类型不匹配的问题了,所以一个Scanner对象是在被new出来的时候就已经开始接受输入了,如果你让线程休眠的话你会发现可以输入,只不过一般执行太快,会让你以为在nextInt()这样的方法执行时才开始接受输入。。。最重要的是,以上内容纯属扯淡


          IP属地:四川来自Android客户端5楼2017-10-02 12:55
          回复
            也不是不能使用赋值语句啦,只不过没有意义,嗯,对,就是这样


            IP属地:四川来自Android客户端6楼2017-10-02 12:58
            收起回复
              把提示和接受语句放do里面,不需要有is right 你可以定义String answer=“是否继续y 还是n”
              input.next().接受一下 然后while语句写是不是等于y


              IP属地:陕西来自Android客户端7楼2017-10-02 13:02
              收起回复
                那你吧input.接受放在break大括号下面


                IP属地:陕西来自Android客户端8楼2017-10-02 13:11
                回复
                  把default里的break改成continue 试试


                  IP属地:陕西12楼2017-10-02 13:26
                  回复
                    我这样写的。你可以跑一遍,参考一下。


                    IP属地:四川来自Android客户端13楼2017-10-02 13:27
                    收起回复
                      这样改一下就行了😂


                      来自iPhone客户端14楼2017-10-02 13:42
                      收起回复
                        13楼的大佬已经完美解决小弟的问题,非常感谢各位大佬鼎力支持。小弟在此拜谢


                        来自iPhone客户端15楼2017-10-02 13:53
                        收起回复
                          你这代码逻辑太麻烦了 还do while 直接 while true跑起来就行了,每次case后加break跳出就行了的 需要结束循环直接关闭虚拟机


                          IP属地:上海来自Android客户端18楼2017-10-02 20:53
                          收起回复
                            去掉第二个break


                            IP属地:江苏来自Android客户端21楼2017-10-10 16:09
                            回复