Continue funktioniert nicht wie geplant

Garrit1994

Mitglied
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?


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!");
                }
    }   
}
 

httpdigest

Top Contributor
Schau dir mal ganz genau den Stacktrace der Exception an.
Der Fehler tritt nicht dort auf, wo du glaubst, sondern in Zeile:
Code:
}if (feld1[1]>=feld2[1] && feld1[1] != null && feld2[1] != null && vsieg > 0 && asieg > 0) {
Wenn das die Zeile 75 im Originalcode ist.
Die Auswertung der Bedingung vom if ist also fehlerhaft, wenn feld2[1] bereits null war.
Das Problem ist, dass du den Ausdruck "feld1[1]>=feld2[1]" bereits vor der Prüfung auf != null machst.
 

Garrit1994

Mitglied
Schau dir mal ganz genau den Stacktrace der Exception an.
Der Fehler tritt nicht dort auf, wo du glaubst, sondern in Zeile:
Code:
}if (feld1[1]>=feld2[1] && feld1[1] != null && feld2[1] != null && vsieg > 0 && asieg > 0) {
Wenn das die Zeile 75 im Originalcode ist.
Die Auswertung der Bedingung vom if ist also fehlerhaft, wenn feld2[1] bereits null war.
Das Problem ist, dass du den Ausdruck "feld1[1]>=feld2[1]" bereits vor der Prüfung auf != null machst.
Danke dir. Ich war wohl einfach nur blind
 

Garrit1994

Mitglied
Hat jemand eine Idee weswegen das Programm nochmal in die while-Schleife geht obwohl der Gewinner eigentlich feststehen müsste?

Konsolenausgabe:
Anzahl Steine Verteidiger(1-5):
3
Anzahl Steine Angreifer(1-5):
2
Verteidiger:642
Angreifer: 62
Verteidigung hat den 1. Wurf gewonnen
Verteidigung hat den 2. Wurf gewonnen
Verteidiger:651
Angreifer: 61
Verteidigung hat den 1. Wurf gewonnen
Verteidiger gewinnt!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Schleife von anderer Methode stoppen? (Start continue) Java Basics - Anfänger-Themen 18
T Break Continue Java Basics - Anfänger-Themen 4
V Erste Schritte Warum geht meine continue Anweisung nicht? Java Basics - Anfänger-Themen 8
W Verständnis Probleme bei der while-Schleife und continue Java Basics - Anfänger-Themen 21
T switch case und continue Java Basics - Anfänger-Themen 5
B Break, Continue und Assert Java Basics - Anfänger-Themen 5
S 'continue' in catch- und if-blöcken Java Basics - Anfänger-Themen 2
K Unterschied zwischen break und continue in einer Schleife Java Basics - Anfänger-Themen 14
H break/continue in einer if-Abfrage? Java Basics - Anfänger-Themen 15
F continue in verschachtelter Schleife Java Basics - Anfänger-Themen 6
hdi continue bei labels Java Basics - Anfänger-Themen 31
G continue und break Java Basics - Anfänger-Themen 1
W verschachtelte For-Schleife - continue Java Basics - Anfänger-Themen 8
S break & continue: sprungmarken Java Basics - Anfänger-Themen 10
D "Press any key to continue" Java Basics - Anfänger-Themen 2
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
monsterherz Punkt Notation funktioniert nicht Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
ms_cikar Bin to Float convertieren funktioniert nicht Java Basics - Anfänger-Themen 24
B Schrankensystem mit Farberkennung für Flashgame funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
I Greenscreen, funktioniert nicht zu 100%... nicht alle Pixel werden geändert Java Basics - Anfänger-Themen 1
JordenJost char variable funktioniert irgendwie nicht a+b ergibt nicht à Java Basics - Anfänger-Themen 4
M Operatoren Strings mit Vergleichsoperatoren, funktioniert das? Java Basics - Anfänger-Themen 9
B Methoden Übergebe Variabel funktioniert nicht Java Basics - Anfänger-Themen 17
P exportiertes Programm funktioniert nur teilweise Java Basics - Anfänger-Themen 7
Agent4nobody Programmstart durch aufruf des interpreters funktioniert nicht Java Basics - Anfänger-Themen 14
Fugover Programm funktioniert nicht Java Basics - Anfänger-Themen 11
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
berserkerdq2 wie funktioniert contenthandler, was muss ich bei der Methode startElement und endElement tun? Java Basics - Anfänger-Themen 11
Alen123 Warum funktioniert mein Code nicht? Java Basics - Anfänger-Themen 64
sserio Array funktioniert nicht Java Basics - Anfänger-Themen 2
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
sserio Größtes Palindrom-Produkt Programm funktioniert nur halb Java Basics - Anfänger-Themen 23
sserio Rekursion größten Primfaktor finden funktioniert nicht Java Basics - Anfänger-Themen 8
sserio Wieso funktioniert mein TableView nicht /JavaFX. Java Basics - Anfänger-Themen 4
Avalon Warum funktioniert eine Bedingung und eine andere nicht? Java Basics - Anfänger-Themen 2
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
U Wie genau funktioniert der ! Operator Java Basics - Anfänger-Themen 3
stormyark 4 Bit in einer for-schleife funktioniert nicht Java Basics - Anfänger-Themen 3
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
M Java printf(Locale.... funktioniert nicht Java Basics - Anfänger-Themen 3
N Wieso funktioniert die Deklaration nicht Java Basics - Anfänger-Themen 3
C Long value an Stringbuilder übergeben, equals Methode funktioniert nicht Java Basics - Anfänger-Themen 2
districon Backtracking funktioniert nicht ganz Java Basics - Anfänger-Themen 3
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
S Math.random funktioniert nicht Java Basics - Anfänger-Themen 5
S Schleife funktioniert nicht Java Basics - Anfänger-Themen 2
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
Henri Webservice Delete und Update Methode funktioniert nicht Java Basics - Anfänger-Themen 27
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
C System.out.println - Parameterübergabe funktioniert nicht Java Basics - Anfänger-Themen 2
JD_1998 Hilfsmethode if return funktioniert nicht Java Basics - Anfänger-Themen 2
C JButton Text 2 Mal ändern funktioniert nicht Java Basics - Anfänger-Themen 8
T % funktioniert nicht Java Basics - Anfänger-Themen 2
D e(fx)clipse installieren funktioniert nicht Java Basics - Anfänger-Themen 3
D GPIO Nutzung mit Pi4J Library auf Raspberry funktioniert nicht Java Basics - Anfänger-Themen 3
F Java GUI-PaintComponent funktioniert nicht Java Basics - Anfänger-Themen 1
J equals funktioniert nicht - Warum Java Basics - Anfänger-Themen 13
L hilfe run button funktioniert nicht Java Basics - Anfänger-Themen 13
I Array funktioniert nicht. Java Basics - Anfänger-Themen 2
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
V_Fynn03 Erste Schritte BubbleSort Quelltext funktioniert noch nicht Java Basics - Anfänger-Themen 1
V_Fynn03 Erste Schritte JButton funktioniert nicht trotz richtiger Methode. Java Basics - Anfänger-Themen 17
R Erste Schritte Eclipse - Java - System.out.println(); funktioniert nicht Java Basics - Anfänger-Themen 2
G Programm mit Schleife funktioniert nicht Java Basics - Anfänger-Themen 5
T Redirect funktioniert nicht Java Basics - Anfänger-Themen 3
R Mein Plugin funktioniert nicht? Java Basics - Anfänger-Themen 10
J Zufallszahl funktioniert nicht Java Basics - Anfänger-Themen 27
D Klassen add Methode funktioniert nicht. Java Basics - Anfänger-Themen 31
J ImagaIO funktioniert nicht unter Ubuntu Java Basics - Anfänger-Themen 23
F Vergleiche mit charAt funktioniert bei Strings nicht, was tun? Java Basics - Anfänger-Themen 5
N Wochentagberechner Ausgabe funktioniert nicht Java Basics - Anfänger-Themen 7
G Mein Java Projekt funktioniert nicht Java Basics - Anfänger-Themen 5
J Einlesen von Datei funktioniert nicht Java Basics - Anfänger-Themen 8
W Wieso funktioniert mein Switch Case nicht ?! Java Basics - Anfänger-Themen 9
P Zeichenkette Zeichen ausschlißen funktioniert nicht richtig Java Basics - Anfänger-Themen 9
F Primzahlsuche Schleife funktioniert nicht, HILFE! Java Basics - Anfänger-Themen 8
M Methoden Arrays.deepequals() funktioniert nicht Java Basics - Anfänger-Themen 2
B Statische Methode return funktioniert nicht. Java Basics - Anfänger-Themen 19
S JDK 9 für Windows 32 bit installiert, aber es funktioniert nix Java Basics - Anfänger-Themen 6
F Input/Output die eine txt-Datei funktioniert die andere nicht Java Basics - Anfänger-Themen 8
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
D Funktion zwei Arraylisten zu verleichen ob gleich funktioniert nicht Java Basics - Anfänger-Themen 26
A Hilfe bei Rekursion,Ich verstehe nicht,wie funktioniert die Rekursion in der Methode "walk" Java Basics - Anfänger-Themen 13
P Vererbung Warum funktioniert die Vererbung hier nicht Java Basics - Anfänger-Themen 14
P Upload Button funktioniert nicht Java Basics - Anfänger-Themen 13
S Dijkstra Algorithmus funktioniert nicht Java Basics - Anfänger-Themen 4
M Datei einlesen mit Scanner funktioniert nicht (FileNotFoundException) Java Basics - Anfänger-Themen 6
A TicTacToe funktioniert bis auf "schiefer" Sieg Java Basics - Anfänger-Themen 6
M Erste Schritte Importieren funktioniert nicht Java Basics - Anfänger-Themen 7
N Funktion funktioniert nicht immer Java Basics - Anfänger-Themen 6
F FileCreation - PrintWriter funktioniert nicht... Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben