ユーザーが入力ステートメントに何も入力しないと、エラーが発生します。代わりに Try/Catch ブロックを使用して例外をスローし、boolAskRepeat を true に設定して、コードの最後までスキップしてループを繰り返すことを考えました。
これは機能しません。何かが足りないと思いますが、何がわからないのですか...それでも例外がスローされます:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at ITSLab03.main(ITSLab03.java:34)
このコード行はどれですか:inputStatus = input.readLine().toLowerCase().charAt(0);
ここで何が間違っていますか?
while (boolAskStatus == true)
{
System.out.print("Employment Status (F or P): ");
try
{
inputStatus = input.readLine().toLowerCase().charAt(0);
if (inputStatus == "f".charAt(0))
{
boolAskStatus = false;
String stringCheckSalary = null;
boolean boolCheckSalary = true;
while (boolCheckSalary == true)
{
// some code
}
outputData(inputName, inputStatus, calculateFullTimePay(inputSalary));
}
else if (inputStatus == "p".charAt(0))
{
// some code
outputData(inputName, inputStatus, calculatePartTimePay(inputRate, inputHours));
}
else boolAskStatus = true;
}
catch (IOException e) { boolAskStatus = true; }
}