Я писал свой первый 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.");
}
}
}
}