我想从user输入字符。如果用户输入字符'Y',则继续从应用程序退出。对于循环我使用do-while。应用条件用于while块。但它不起作用。无论用户输入什么,应用程序都不会退出并继续。
char choice='\u0000';
do
{
System.out.println("Enter Y to continue or N to exit");
choice=(char)System.in.read();
}
while(choice!='N');
答案 0 :(得分:0)
choice = (char) System.in.read();
(将一个字节从系统编码转换为UTF-16)只有在两种编码中字符具有相同值时才有效。这通常只适用于非常小范围的角色。使用扫描仪更可靠。
我更新了您的查询,使用Scanner类读取字符。
Scanner reader = new Scanner(System.in);
char choice='\u0000';
do
{
System.out.println("Enter Y to continue or N to exit");
choice = reader.next().charAt(0);
}
while(choice!='N' && choice != 'n');
答案 1 :(得分:0)
我认为如果你这样做会更容易:
char choice='\u0000';
System.out.println("Enter Y to continue or N to exit");
Scanner reader = new Scanner(System.in);
while(choice!='N' && choice!='Y' && choice!='n' && choice!='y') {
choice = reader.nextLine().charAt(0);
}
reader.close();
之后,您可以显示他是否输入了N或Y并继续使用您的代码