Zdravím zkoušel jsem si dělat matice:
public class DvourozmernePole {
public static void main(String[] args) {
int[][] maticeA = new int[5][4];
//genereuj prvky matice z intervalu <-20; 20>
for (int i = 0; i < maticeA.length; i++) {
for (int j = 0; j < maticeA.length; j++) {
maticeA[i][j] = -20 + (int) (41 + Math.random());
}
}
//vypise zformatovane prvky matice
System.out.println("Matice A:");
for (int i = 0; i < maticeA.length; i++) {
for (int j = 0; j < maticeA.length; j++) {
System.out.format("%6d" + maticeA[i][j]);
}
System.out.println("");
}
//vypise prvky na hlavni diagonale
int pocetPrvkuHLDiagonaly = Math.min(maticeA.length, maticeA[0].length);
System.out.println("Prvky hlavni diagonaly:");
for (int i = 0; i < pocetPrvkuHLDiagonaly; i++) {
System.out.print(maticeA[i][i] + ". ");
}
System.out.println("");
//zjisti od uzivatele dva indexy pro radky, ktere zameni
// radky za sloupce
Scanner vstup = new Scanner(System.in);
System.out.println("Zadejte index radku k vymene: ");
int index1 = vstup.nextInt();
System.out.println("Zadejte index druheho radku k vymene: ");
int index2 = vstup.nextInt();
for (int i = 0; i < maticeA.length; i++) {
for (int j = 0; j < maticeA.length; j++) {
int[] pom = maticeA[index1];
maticeA[index1] = maticeA[index2];
maticeA[index2] = pom;
}
}
}
}
Problém je, že když to chci spustit nahlásí mi to chybu a u některých řádku mi svítí žárovka s vykřičníkem(use enhanced for loop to iterate over the array):
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at izapr_cv04.DvourozmernePole.main(DvourozmernePole.java:12)
Java Result: 1
poradíte mi v čem dělám chybu?
Děkuji