Hallo, wir haben gerade mit Java begonnen und ich bekomme bei meinem ersten "Projekt" immer wieder die Fehlermeldung "
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because "feld2[1]" is null
at aufgabe2/risiko.Risiko.main(Risiko.java:75)", obwohl ich eigentlich bei dem Fall ein "continue" eingebaut habe. Kann mir jemand erklären, weswegen und wie ich den Fehler beheben kann?
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because "feld2[1]" is null
at aufgabe2/risiko.Risiko.main(Risiko.java:75)", obwohl ich eigentlich bei dem Fall ein "continue" eingebaut habe. Kann mir jemand erklären, weswegen und wie ich den Fehler beheben kann?
Java:
package risiko;
import java.util.Arrays;
import java.util.Collections;
import java.util.Random;
import java.util.Scanner;
public class Risiko {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Anzahl Steine Verteidiger(1-5):");
int v;
v = input.nextInt();
int asieg = v;
int a;
System.out.println("Anzahl Steine Angreifer(1-5):");
a = input.nextInt();
int vsieg = a;
System.out.println("vsieg:"+ vsieg);
Integer[] feld1 = new Integer[5];
Integer[] feld2 = new Integer[5];
Random zufall = new Random();
while(vsieg > 0 && asieg > 0) {
for(int i=0;i<a; i++) {
feld2[i]= zufall.nextInt(6)+1;
}
for(int i=0;i<v; i++) {
feld1[i]= zufall.nextInt(6)+1;
}
if (v==1) {
System.out.println("Verteidiger:"+feld1[0]);
} else if(v==2) {
System.out.print("Verteidiger:"+feld1[0]);
System.out.println(feld1[1]);
} else if(v>=3) {
System.out.print("Verteidiger:"+feld1[0]);
System.out.print(feld1[1]);
System.out.println(feld1[2]);
}
if (a==1) {
System.out.println("Angreifer:"+" "+" "+feld2[0]);
}else if(a==2) {
System.out.print("Angreifer:"+" "+" "+feld2[0]);
System.out.println(feld2[1]);
}else if(a>=3) {
System.out.print("Angreifer:"+" "+" "+feld2[0]);
System.out.print(feld2[1]);
System.out.println(feld2[2]);
}
if (feld1[0]>=feld2[0]) {
asieg -= 1;
System.out.println("Verteidigung hat den 1. Wurf gewonnen");
}else{
vsieg -= 1;
System.out.println("Angreifer hat den 1. Wurf gewonnen");
}if (feld1[1]>=feld2[1] && feld1[1] != null && feld2[1] != null && vsieg > 0 && asieg > 0) {
asieg -= 1;
System.out.println("Verteidigung hat den 2. Wurf gewonnen");
}else if(feld1[1]<feld2[1] && feld1[1] != null && feld2[1] != null && vsieg > 0 && asieg > 0){
vsieg -= 1;
System.out.println("Angreifer hat den 2. Wurf gewonnen");
}if(feld1[1]==null) {
continue;
}else if(feld2[1]==null) {
continue;
}
if (feld1[2]>=feld2[2] && feld1[2] != null && feld2[2] != null&& vsieg > 0 && asieg > 0) {
asieg -= 1;
System.out.println("Verteidigung hat den 3. Wurf gewonnen");
}else if(feld1[2]<feld2[2] && feld1[2] != null && feld2[2] != null && vsieg > 0 && asieg > 0){
vsieg -= 1;
System.out.println("Angreifer hat den 3. Wurf gewonnen");
}continue;
}if (vsieg==0) {
System.out.println("Angreifer gewinnt!");
}else if (asieg==0) {
System.out.println("Verteidiger gewinnt!");
}
}
}