簡體   English   中英

如何拒絕輸入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM