java吧 关注:1,247,647贴子:12,728,413
  • 30回复贴,共1

【自学党求助】改了很久还是改不对求指正 TUT

只看楼主收藏回复


onceAgain()就是程序运行完了根据输入选择是否再次运行的判断函数,代码如下:

在main函数中的引用如下:

问题在于如果第一遍询问是否重复的时候正确输入Y或者y,运行都是正常的,如图:

但是如果第一次没有正确输入Y/N的话,再次输入的时候就算输入正确了也会跳出do-while执行exit(0);了
实在是搞不明白问题在哪里了。。。。求助TUT


1楼2013-04-11 22:37回复

    补图,这就是出问题的那种情况


    2楼2013-04-11 22:39
    回复
      为什么没人。。。。。。。。O.O


      3楼2013-04-11 22:52
      回复
        递归问题~~最后的return false去掉


        IP属地:北京4楼2013-04-11 22:54
        收起回复
          你是不是如果输入的不是y 或n就一致递归?那样的话吧最后一个else去掉


          IP属地:北京5楼2013-04-11 22:57
          收起回复
            static boolean onceAgain() throws IOException{
               System.out.print("Need input another idNumber?(Y/N) :");
               BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
               String str= br.readLine();
               char tempc=str.charAt(0);
               if(tempc == 'Y' || tempc == 'y'){
                 return true;
               }
               else if(tempc == 'N' || tempc == 'n'){
                 return false;
                }
               else{
                System.out.println("Choose Error.Choose again.");
                onceAgain();
                }
               return false;
            }
            @shijianws 懂你说的意思了。。。但是要怎么改才能让输错之后正确输入继续判断下去啊?


            6楼2013-04-11 23:07
            回复
              仔细分析执行顺序,你在onceAgain里面调用onceAgain,不管返回true false什么都向下继续执行return false


              IP属地:江苏8楼2013-04-12 08:21
              收起回复
                这黑色背景,用的惯?


                IP属地:江苏10楼2013-04-12 09:20
                收起回复
                  虽然我是学软件的。但是我天天都在打酱油。帮不上你啊小东。


                  IP属地:山西12楼2013-04-15 10:58
                  收起回复