java out of bounds

Status
Niet open voor verdere reacties.

Seantf

Gebruiker
Lid geworden
23 apr 2013
Berichten
140
Hey, Ik heb wat hulp nodig ik kom er even niet meer uit ik probeer het totaal aaneen gesloten getallen te bepalen dat groter is dan 0 bij 0 dan moet hij weer resetten.

Error dat ik krijg index:7 Size:7 (in java.util.arraylist)
java.lang.indexoutofboundsexception;

Iemand die mij hiermee kan helpen?


Alvast bedankt.

Code:
import java.util.*;

public class maxRegenAaneen
{
    private double RainrateMinute;
    private double UreninMinuut;
    private double maxRegenAaneengesloten = 0;
    private double gevallenRegen = 0;
    private double regenOpslag =0;
    private int Date = 0;
    private int i = 0;
      

 ArrayList<Double> Regen= new ArrayList<Double>(Arrays.asList(1.38, 2.56, 4.3, 0.0, 0.2, 6.6,4.6));
   
    public maxRegenAaneen()
    {     
    }
 
        public void AanEenGesloten()
        {
            for(Object obj: Regen)
            //while(Regen.get(i) < Regen.size())
            {
                if(Regen.get(i) > 0)
                {
                    
                    gevallenRegen = gevallenRegen + Regen.get(i);
                    i++;
                }
                if(Regen.get(i) == 0.0)
                {
                    maxRegenAaneengesloten = gevallenRegen;
                   gevallenRegen = 0;
                   i++;
                }
                else if(maxRegenAaneengesloten > regenOpslag)
                {
                    regenOpslag = maxRegenAaneengesloten;
                    System.out.println(regenOpslag);
                    i++;
                }
               
            }
        
        }
}
 
test volgende eens out of bound was dat je buiten de arrayrange een element koos dus je hebt 5 elementen en je vraagt het 6
Code:
package helpmij;
import java.util.*;
public class maxRegenAaneen{
    private double RainrateMinute;
    private double UreninMinuut;
    private double maxRegenAaneengesloten = 0;
    private double gevallenRegen = 0;
    private double regenOpslag =0;
    private int Date = 0;
    ArrayList<Double> Regen= new ArrayList<Double>(Arrays.asList(1.38, 2.56, 4.3, 0.0, 0.2, 6.6,4.6));  
    public maxRegenAaneen(){     
    }
    public void AanEenGesloten(){
        for(Double d: Regen){
            if(d > 0){
                gevallenRegen = gevallenRegen + d;
            }
            if(d == 0.0){
                maxRegenAaneengesloten = gevallenRegen;
               gevallenRegen = 0;
            }else if(maxRegenAaneengesloten > regenOpslag){
                regenOpslag = maxRegenAaneengesloten;
                System.out.println(regenOpslag);
            }
        }
    }
}
 
Laatst bewerkt:
De error is inderdaad verholpen alleen het programma werkt nog niet helemaal hij blijft hangen zodra ik op 8.24 kom
en dan komt de eerste 0 en dan zou hij weer verder moeten gaan maar ik krijg het niet voor me kaar kan een van jullie misschien zien wat ik fout doe?
 
Ik ben er achter waarom hij niet door gaat omdat ik cconstant check of er 0.0 komt en dan voeg ik hem pas in op de max aaneengesloten regen maar ik ook checken of hij groter is dan regenopslag als alle waardes zijn geweest
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan