私のプログラムの他のすべては、この単一のメソッドを除いて動作します。ここでは、sc.next()をスキップし、ifの場合にハングします。私のJavaプログラムは私の入力をスキップし、IF文でハングアップするのはなぜですか?
public static String getChoice() {
boolean choiceSelector = false;
// construct a Scanner object for getting input
Scanner sc = new Scanner(System.in);
System.out.println("Do you wish to continue? Y/N");
String choice = " ";
do{
choice = sc.next();
if(choice.equalsIgnoreCase("Y")){
choice="Y";
choiceSelector = true;
}
if(choice.equalsIgnoreCase("N")){
choice="N";
choiceSelector = true;
} else
choice = sc.next("Please enter a correct value.");
} while(choiceSelector == false);
return choice;
}//end getChoice
あなたはこの1つ前に呼び出す方法は何ですか?それも表示してください。 –
私はmainメソッドからこのメソッドを呼び出していますが、mainメソッドは完全に機能しています。このメソッドは、メインメソッドのwhileループを続行するか終了するかを決定します。 – user6831363
いいえ、そうではありません。 'next()'でブロックします。 NB 'next()'はプロンプトを表示しません。あなたはそれを悪用しています。 – EJP