java—如何拒绝输入

x4shl7ld  于 2021-07-03  发布在  Java
关注(0)|答案(3)|浏览(332)

当我没有在“while”部分输入“y”时,程序正在退出。当用户输入不是“y”时,请帮助我拒绝

try  {
  BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  System.out.println("hakdug");
  System.out.println("a.quit");
  System.out.println("b.continue");
  System.out.println("c.break");
  System.out.println("d.exit");

  do {
    System.out.print("Enter your choice:");
    choice = br.readLine();
    if (choice.compareTo("b")==0) {
      System.out.println("Congratulation!");
      break;
    }
    else System.out.println("Incorrect!");

    System.out.print("Again? press y to continue:");
    con =br.readLine();
  } while (con.compareTo("y")==0);

} catch(IOException e){}
xesrikrc

xesrikrc1#

您需要删除代码中的break语句:

try{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("hakdug");
System.out.println("a.quit");
System.out.println("b.continue");
System.out.println("c.break");
System.out.println("d.exit");

do
{

System.out.print("Enter your choice:");
choice =br.readLine();

if (choice.compareTo("b")==0)
{
System.out.println("Congratulation!");
//break;
}
else System.out.println("Incorrect!");

System.out.print("Again? press y to continue:");
con =br.readLine();
} while (con.compareTo("y")==0);

}catch(IOException e){}

break语句强制jvm中断整个循环。我在这里评论了break语句。

lg40wkob

lg40wkob2#

所以现在,如果用户输入字母“y”(同样,这是区分大小写的),就会有一个无限循环。但是,最主要的是如果用户输入了任何其他字符,它就退出了程序,因为它到达了文件的末尾,如果您想让它为任何其他键输入做一些其他的事情,您需要对其进行编程。我还要说,删除break语句很重要,因为这也可能会引起问题。

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        System.out.println("hakdug");
        System.out.println("a.quit");
        System.out.println("b.continue");
        System.out.println("c.break");
        System.out.println("d.exit");

        do
          {
           System.out.print("Enter your choice:");
           choice =br.readLine();

           if (choice.compareTo("b")==0)
             {
               System.out.println("Congratulations!");
               //break;
             }
          else 
               System.out.println("Incorrect!");

          System.out.print("Again? press y to continue:");
          con =br.readLine();
         } 
while (con.compareTo("y")==0);

}catch(IOException e){}
3phpmpom

3phpmpom3#

我对这个问题有点困惑。
但是,如果所需的功能是您不断循环,直到用户被按下“b”(并表示祝贺),或者如果他们搞错了,那么只有当他们按下“y”时才退出,那么您应该更改

} while (con.compareTo("y")==0);

} while (!(con.compareTo("y")==0));

这告诉它只有在没有按“y”时才循环,而不是在按“y”时循环。

相关问题