我的BufferedReader有一个问题,它假设一直读取,直到我告诉不要这样做。但事实并非如此。为什么在程序中关闭,不等到我输入“true或false”?BufferedReader不会等到输入完成
public static void main(String args[]) throws IOException{
double a;
double b;
char ch=' ';
try(BufferedReader br=new BufferedReader(new InputStreamReader((System.in))))
{
while (true)
{
System.out.println("Введите a: ");
a = Double.parseDouble(br.readLine());
System.out.println("Введите b: ");
b = Double.parseDouble(br.readLine());
System.out.println("Введите символ арифметической операции, которую хотите произвести с выражением a{}b: */+ -.");
ch = (char) br.read();
switch (ch) {
case '+':
System.out.println(a + b);
break;
case '-':
System.out.println(a - b);
break;
case '*':
System.out.println(a * b);
break;
case '/':
System.out.println((b != 0) ? (a/b) : "Нельзя делить на 0!");
break;
default:
System.out.println("Вы ввели не поддерживаемые символы!");
break;
}
System.out.println("Хотите повторить ввод? (true, false)");
String str = br.readLine();
System.out.println("str " + str);
if (!Boolean.parseBoolean(str)) {
break;
}
}
}
catch (IOException e) {
e.printStackTrace();
}
}
什么是当前的输出多远方案是否得到什么?当你提示这样做时你真的输入了一个字符吗?有没有例外? –