I have been fiddling about with this code, and cannot work out how to create and add to an array without incurring some error one way or the other. This is the closest I have come to getting it to work.
I have tried creating the array within my first loop, but I need to access it later in the program.
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);
I am getting this error
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at CarHire.main(CarHire.java:106)
I'm sure it's a simple principle I am missing, any help is appreciated.