[英]Java: how to reject incorrect input and wait for proper input using Scanner
[英]How to reject the input
當我沒有在“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){}
您需要刪除代碼中的 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 聲明。
所以現在如果用戶輸入字母“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){}
我對這個問題有點困惑。
但是,如果所需的功能是您不斷循環直到用戶按下“b”(並表示祝賀),或者如果他們弄錯了,那么只有在他們按下“y”時才退出,那么您應該更改
} while (con.compareTo("y")==0);
至
} while (!(con.compareTo("y")==0));
這告訴它只有在他們沒有按下“y”時才循環,而不是在他們按下“y”時循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.