このメソッドにさらに数字があるかどうかを尋ねられた後に「y」と入力すると、コードが正しく機能してループを抜けるのに、「n」と入力してリターンを押すと、「n」と入力してもう一度リターンを押すか、プロセスがハングします。
なんで?
文字列 'input' は、メイン メソッドでユーザーの入力から渡されており、この場合は「加算」です。
private int add(String input)
{
int additionValue = 0;
boolean keepGoing = true;
if (input.matches("addition"))
{
while (keepGoing == true)
{
System.out.println("Next digit = (Type the digit)");
additionValue = additionValue + scan.nextInt();
System.out.println("Any more digits? Type y/n");
if (scan.next().matches("Y|y"))
{
keepGoing = true;
}
else if (scan.next().matches("N|n"))
{
keepGoing = false;
}
else
{
System.out.println("Great, you broke it.");
System.exit(1);
}
}
}
}
を使用してコードを機能させることができました
System.out.println("Any more digits? Type y/n");
String yayOrNay = scan.next();
if (yayOrNay.length()==1 && yayOrNay.charAt(0)=='y')
{
keepGoing = true;
}
しかし、それは私には少し複雑すぎるようです。