我一直在编写我的第一个Java脚本,遇到了一个问题。我不明白为什么当这个循环第一次运行时,程序会等待用户输入一些东西,然后处理输入并做出相应的响应,但是第二次运行时,它会在没有等待用户输入的情况下陷入无限循环。根据记录,我确实希望这是一个无限循环,除非程序应该在用户输入"3“时结束。如果在每次用例后我都写上"keep_going = false;“,那么程序就会正常工作,但显然不会一直循环。非常感谢您的帮助,谢谢!
import java.io.*;
class Choice
{
public static void main (String[] args)
{
String input = "";
Boolean keep_going = true;
while (keep_going)
{
input = "";
System.out.println("Welcome to my program! Would you like to:");
System.out.println("1. Say hi.");
System.out.println("2. Find out my favourite colour.");
System.out.println("3. End the program.");
System.out.println(">");
System.out.print( "> " );
InputStreamReader isr = new InputStreamReader( System.in );
BufferedReader buffer = new BufferedReader( isr );
try
{
input = buffer.readLine();
buffer.close() ;
}
catch (IOException e )
{
System.out.println(e);
}
switch (input)
{
case "1": System.out.println("Hi!"); break;
case "2": System.out.println("My favourite colour is blue!"); break;
case "3": return;
default : System.out.println(input + " is not a valid option. Please try again.");
}
}
}
}
发布于 2018-08-27 04:36:18
无限循环是由于行buffer.close() ;
造成的
做这样的调整
buffer.close() ;
//buffer.close() ;
case "3": keep_going=false;break;
https://stackoverflow.com/questions/52029947
复制相似问题