大文字または小文字の3文字のいずれかをスキャンして、小文字バージョンの文字を返すメソッドがあります。不適切な文字が入力された場合、ユーザーは警告を受け、文字を再度要求されます。2つの問題があります。1:メソッドが実行されるとすぐに、エントリを待たずにユーザーに無効なエントリを通知するエラーメッセージが出力された行が表示されます。(したがって、High, low or sevens (H/L/S):Invalid entry. Please try again using H/L/S!
何かを入力する前にメソッドが実行されると、メソッドが再度呼び出され、次の問題を除いてすべて正常に動作します)2:スキャナーから取得したエントリは、ifステートメントを通過しません。そうすべき。
私のコード:
private static char getHighLow(Scanner inScanner) {
System.out.print("High, low or sevens (H/L/S):");
String entered = inScanner.nextLine();
System.out.print(entered);
if(entered.equals("H") || entered.equals("h")){
return 'h';
}
else if (entered.equals("L") || entered.equals("l")){
return 'l';
}
else if(entered.equals("S") || entered.equals("s")){
return 's';
}
char result = 0;
while(result != 'l' || result != 'h' || result != 's'){
System.out.println("Invalid entry. Please try again using H/L/S!");
result=getHighLow(inScanner);
}
return result;
}