Gå til innhold

Lite ArrayIndexOutOfBoundsException problem


Anbefalte innlegg

Hei, sitter her å tukler med gamle eksamensoppgaver da jeg har eksamen i java snart.

Har en klasse som ser slik ut:

 

public class Fargebilder
{
private final int hvit = 0;
private final int svart = 1;
private final int blå = 2;
public String navn;
public int[][] fargetabell;

public Fargebilder(String startNavn, int[][] nyFargetabell)
{
	navn = startNavn;
	fargetabell = new int[nyFargetabell.length][nyFargetabell[0].length];
	for(int i=0; i<nyFargetabell.length; i++)
	{
		for (int j=0; i<nyFargetabell[i].length; j++)
			{
				fargetabell[i][j] = nyFargetabell[i][j];
			}
		}

}

public boolean gyldigeIndekser(int x, int y)
{
	return x>= 0 && x < finnHøyde()
	&& y>=0 && y < finnBredde();

}
public boolean gyldigFarge(int farge)
{
	return farge == hvit || farge == svart || farge== blå;
}
public int finnHøyde()
{
	return fargetabell.length;
}

public int finnBredde()
{
	return fargetabell[0].length;
}

public int finnFarge(int x, int y)
{
	if(gyldigeIndekser(x, y))
	{
	return fargetabell[x][y];
}else return -1;

}

public int finnAntallForekomster(int farge)
{
	int k=0;
	for(int i=0; i<fargetabell.length; i++)
	{
		for(int j=0; j<fargetabell[i].length; j++)
		{
			if(fargetabell[i][j] == farge)
			{
				k++;
			}
		}
	}
	return k;
}

public boolean finnesFarge(int farge)
{
	return (finnAntallForekomster(farge) > 0);

}

public void byttUtFarge(int farge1, int farge2)
{
	for(int i=0; i<fargetabell.length; i++)
	{
		for(int j=0; j<fargetabell[i].length; j++)
		{
			if(fargetabell[i][j] == farge1)
			{
				fargetabell[i][j] = farge2;
			}
		}
	}
}



}

 

Har lagd et lite klientprogram for å teste om det fungerer som ser slik ut:

 

import static javax.swing.JOptionPane.*;
public class Fargebilderklient
{
public static void main(String[] args)
{
	int[][] tabell = {{0,1,0}, {1,1,1}};
	String a = showInputDialog(null, "Hva heter testen?");
	Fargebilder b = new Fargebilder(a, tabell);

	System.out.println(b.finnHøyde());
}
}

 

Når jeg skal kjøre dette får jeg ArrayIndexOutOfBoundsException 3, noen som har en god forklaring på dette?

 

Mvh HeadBlast.

Lenke til kommentar
Videoannonse
Annonse

Mange utviklingsverktøyer har en mulighet for å starte programmet, og hele tiden følge med på verdier i variabler osv. og til å pause programmet når det skjer en feil. På denne måten kan en da se hva som er i de forskjellige variablene og se hva som førte til feilen.

 

Ser feilen nå:

for (int j=0; i<nyFargetabell.length; j++)

du har skrevet i istedet for j.

Lenke til kommentar

Mange utviklingsverktøyer har en mulighet for å starte programmet, og hele tiden følge med på verdier i variabler osv. og til å pause programmet når det skjer en feil. På denne måten kan en da se hva som er i de forskjellige variablene og se hva som førte til feilen.

 

Ser feilen nå:

for (int j=0; i<nyFargetabell.length; j++)

du har skrevet i istedet for j.

 

Ah ok skjønner, bruker textpad jeg.

 

Der funket det ja, takk skal du ha! :))

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...