import javax.swing.JOptionPane; public class Oppg2b { //Variabeldeklarasjon static int[][] tallMat = new int[9][9]; static int inputTall; static int inputRekkenr; static int inputKolonnenr; public static void main(String[]args) { // input av tall og kondisjonstesting inputTall = Integer.parseInt(JOptionPane.showInputDialog("Skriv inn et tall mellom 1 og 9")); if (nullTest(inputTall) == 1) { inputRekkenr = Integer.parseInt(JOptionPane.showInputDialog("Skriv inn rekkenummer mellom 1 og 9")); if ((rekkeTest(inputTall,inputRekkenr) == 0) && (nullTest(inputRekkenr) == 1)) { inputKolonnenr = Integer.parseInt(JOptionPane.showInputDialog("Skriv inn kolonnenummer mellom 1 og 9")); if ((kolonneTest(inputTall,inputKolonnenr) == 0) && (nullTest(inputKolonnenr) == 1)){ if (matriseTest(inputTall,inputRekkenr,inputKolonnenr) == 0) { tallMat[inputRekkenr][inputKolonnenr] = inputTall; System.out.println("Plassering ok"); } // end matriseTest else System.out.println("Ugyldig plassering"); } // end kolonneTest else System.out.println("Ugyldig plassering"); } // end rekkeTest else System.out.println("Ugyldig plassering"); } // end nullTest else System.out.println("Ugyldig plassering"); } //end main // nulltest ser om tallet er over 0 og til og med 9 static int nullTest (int inputTall) { if (0 < inputTall && inputTall <= 9) { return 1; } else { return 0; } } // end nullTest // rekketest ser om tallet allerede eksisterer i rekka static int rekkeTest (int inputTall,int inputRekkenr) { for (int i = 0; i <= 8; i++) { if (inputTall == tallMat[inputRekkenr][i]) { return 1; } } return 0; } // end rekkeTest // kolonnetest ser om tallet allerede eksisterer i kolonnen static int kolonneTest (int inputTall,int inputKolonnenr) { for (int i = 0; i <= 8; i++) { if (inputTall == tallMat[i][inputKolonnenr]) { return 1; } } return 0; } // end kolonneTest // matrisetest ser om tallet allerede finnes i del-matrisen static int matriseTest (int inputTall, int inputRekkenr, int inputKolonnenr) { int rekkemin = (int)((Math.floor(inputRekkenr/3))*3); int kolonnemin = (int)((Math.floor(inputKolonnenr/3))*3); for (int i = rekkemin; i <= (rekkemin+3); i++) { for (int j = kolonnemin; j <= (kolonnemin+3); j++) { if (inputTall == tallMat[i][j]) { return 1; } } } return 0; } //end matriseTest } //end public class Oppg2b Om inputRekkenr = 9 får jeg Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9 at Oppg2b.rekkeTest(Oppg2b.java:44) at Oppg2b.main(Oppg2b.java:14) om inputKolonnenr >= 6 får jeg Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9 at Oppg2b.matriseTest(Oppg2b.java:68) at Oppg2b.main(Oppg2b.java:17)