私はこのコードをいじっていましたが、何らかのエラーを発生させずに配列を作成して追加する方法を理解できません。これは、私がそれを機能させるのに最も近いものです。
最初のループ内で配列を作成しようとしましたが、後でプログラムでアクセスする必要があります。
String userInput;
int i=0;
String damages [] = new String [i];
double repairCost [] = new double [i];
int j=0;
String infringements [] = new String [j];
double fines [] = new double [j];
double repairCostTotal = 0.00;
double finesTotal = 0.00;
double finalHire = 0.00;
do
{
System.out.print("Damage: D, Infringements: F, "Exit: X");
userInput = stdin.readLine();
if (userInput.equalsIgnoreCase("D"))
{
System.out.println("Damage description:");
damages[i] = stdin.readLine(); //<<<<--line of error
System.out.println("Repair Costs:");
repairCost [i] = Double.parseDouble(stdin.readLine());
repairCostTotal = repairCostTotal + repairCost [i];
i=i+1;
}
else if (userInput.equalsIgnoreCase("F"))
{
System.out.println("Infringement type:");
infringements[j] = stdin.readLine();
System.out.println("Fine:");
fines [j] = Double.parseDouble(stdin.readLine());
finesTotal = finesTotal + fines [j];
j=j+1;
}
else if (!userInput.equalsIgnoreCase("X"))
{
System.out.print("Enter a valid Selection:");
}
}
while (!userInput.equalsIgnoreCase("x"));
System.out.println("Damage Repair Details: ");
for ( i= 0; i < damages.length; i++)
System.out.println("- " + damages [i] + " ($" + repairCost[i] + ")");
System.out.printf("Damage Repair Total: %10.2f %n", repairCostTotal);
System.out.println("Traffic Infringement Details:");
for (j= 0; j < fines.length; j++)
System.out.println("- " + infringements [i] + " ($" + fines[j] + ")");
System.out.printf("Traffic Fine Total: %10.2f %n", finesTotal);
このエラーが発生しています
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at CarHire.main(CarHire.java:106)
私が見逃しているのは単純な原則だと確信しています。どんな助けも大歓迎です。