Break Sprungmarken Problem einer While True in While True

DanyC

Mitglied
Hey,
kurze Frage zu einer Problematik.
Ich habe ein kleines Programm geschrieben was über mehrere Fragen und deren Antworten
dazu agiert. Da einer der Fragen wiederum Fragen zur Auswahl stellt, habe ich in der ersten While True Schleife eine zweite platziert.
Gibt man nun Close ein soll die innere While geschlossen werden und in der zweiten bei der Sprungmarke wieder anfangen.

Problem ist das dies nicht funktioniert und ich auch gerade nicht ganz verstehe, weshalb =)
Bin auch nicht besonders tief in der Materie.

Vllt hat jemand ja eine Idee weshalb.

Vielen Dank
Mit freundlichen Grüßen
DanyC


Code:
package Info2;
import javax.swing.JOptionPane;

public class Info3 {
   

    public static void main (String[] args) {
        //Implimentier X,Y,Z

               
        JOptionPane.showMessageDialog(null,"Implimentiert aktuell: \nX,Y,Z","Infotext",JOptionPane.WARNING_MESSAGE);
        //Closer
        String    c1 = "close",
                c2 = "Close";
        LoopOne:
        while (true) {
        String     e1 = JOptionPane.showInputDialog("Hey,\nwähle aus?");
       
        //Zusatz Info
        String     v11 = "F1",
                v111= "f1",
                v12 = "Fr1",
                v121= "fr1",
                v13 = "Fr2",
                //Johanna
               
                v21 = "J1",
                v211= "j1",
                v22 = "J2",
                v221= "j2",
                v23 = "J3",
                v24 = "j3",
               
                v31 = "M1",
                v311= "m2",
                v32 = "L12",
               
                v41 = "F1",
                v411= "f1",
               
                v51 = "L1",
                v511= "l2",
                v52 = "HL1",
                v521= "hL1",
                v522= "hl1",
                v523= "HL1",
               
                j1 = "Ja",
                j2 = "ja",
                n1 = "Nein",
                n2 = "nein";
       
       
       
       
       
       
       
       
        String     am5 = "X",
                am6 = "X",
                am7 = "X",
                am8 = "X";
        String     v53    = "X";

        String     s1  = "X";

        String     af1 = "X",
                af2 = "X",
                af3 = "X";

        String  aj1 = "X",
                aj2 = "X",
                aj3 = "X",
                aj4 = "X",
                aj5 = "X",
                aj6 = "X";
       
        String     am1 = "X",
                am2 = "X",
                am3 = "X",
                am4 = "X",
                am9 = "X";
   
        String    afr1 = "X";
   
        String     alf1 = "X",
                alf2 = "X",
                alf3 = "X",
                alf31= "X",
                alf4 = "X",
                alf5 = "X",
                alf6 = "X",
                alf7 = "X",
                alf71= "X",
                alf8 = "X",
                ali1 = "X",
                ali2 = "X",
                //Frage 1
                ala1 = "X",
                //Frage 2
                ala2 = "X",
                //Frage 3
                ala3 = "X",
                ala31= "X",
                ala32= "X",
                //Frage 4
                ala4 = "X",
                //Frage 5
                ala5 = "X",
                //Frage 6
                ala6 = "X",
                //Frage 7
                ala7 = "X",
                ala71= "X",
                //Frage 8
                ala8 = "X";
       
       
       
        double     e32 = 1.0;
       
       
        //Input 2
       
        if (e1.equals(c1)||e1.equals(c2)) {
            break;
        }
        else {
       
                    if (e1.equals(v11) || e1.equals(v12)|| e1.equals(v111)|| e1.equals(v121))    {
                    String e2 = JOptionPane.showInputDialog(af1+v13+s1);
                                        if (e2.equals(j1)|| e2.equals(j2)) {
                                        JOptionPane.showMessageDialog(null, af2);
                                        continue;
                                        }
                                        else {
                                        JOptionPane.showMessageDialog(null, af3);
                                        continue;
                                        }
                   
                    }
                    else                 {
                                        if (e1.equals(v21) || e1.equals(v22)|| e1.equals(v211)|| e1.equals(v221))    {
                                        String e3 = JOptionPane.showInputDialog(aj1+v23+s1+aj2);
                                        double e31 = Double.parseDouble(e3);   
                                                                                if (e31 >= e32) {
                                                                                                if(e31> 5) {
                                                                                                    JOptionPane.showMessageDialog(null, aj6);
                                                                                                    continue;
                                                                                                }
                                                                                                else {           
                                                                                                    JOptionPane.showMessageDialog(null, aj3+v23+aj4);
                                                                                                    continue;
                                                                                                }
                                                                                }
                                                                                else {
                                                                                    if (e31< e32) {
                                                                                        if (e31< 0) {
                                                                                            JOptionPane.showMessageDialog(null, aj5);
                                                                                        }
                                                                                        JOptionPane.showMessageDialog(null, aj6+v24);
                                                                                        continue;
                                                                                    }
                                                                                    else {
                                                                                        continue;   
                                                                                    }
                                                                                }
                                        }
                                        else     {
                                                if (e1.equals(v31)|| e1.equals(v311)) {
                                                String e4 = JOptionPane.showInputDialog(am1 +v32+s1);
                                                        if (e4.equals(j1)|| e4.equals(j2)) {
                                                            String e41 = JOptionPane.showInputDialog(am2);
                                                                    if (e41.equals(j1)|| e41.equals(j2)) {
                                                                    JOptionPane.showMessageDialog(null, am3);   
                                                                    }
                                                                    else     {
                                                                            if (e41.equals(n1)|| e41.equals(n2)){
                                                                            JOptionPane.showMessageDialog(null, am4);
                                                                            continue;
                                                                            }
                                                                            else {
                                                                            JOptionPane.showMessageDialog(null, am5+v32+am6+j1+am7+n1+am8);   
                                                                            continue;
                                                                            }
                                                                    }
                                                        }   
                                                        else {
                                                            if (e4.equals(n1)||e4.equals(n2)){
                                                                JOptionPane.showMessageDialog(null, am9);
                                                                continue;
                                                            }
                                                            else {
                                                            JOptionPane.showMessageDialog(null, am5+v32+am6+j1+am7+n1+am8);
                                                            continue;
                                                            }
                                                        }
                                                                   
                                                }
                                                else         {
                                                            if (e1.equals(v41)|| e1.equals(v411)) {
                                                            JOptionPane.showMessageDialog(null, afr1);   
                                                            }
                                                            else {
                                                                    if (e1.equals(v53)||e1.equals(v51)|| e1.equals(v511)|| e1.equals(v52)|| e1.equals(v521)|| e1.equals(v522)|| e1.equals(v523)) {
                                                                        while (true) {
                                                                        String e5 = JOptionPane.showInputDialog(alf1+alf2+alf3+alf4+alf5+alf6+alf7+alf8+ali1+ali2);
                                                                        int e51 = Integer.parseInt(e5);   
                                                                       
                                                                        //close while 2
                                                                        if(e5.equals(c1)||e5.equals(c2)) {
                                                                        break LoopOne;
                                                                        }
                                                                        else {
                                                                            if (e51==1) {
                                                                                JOptionPane.showMessageDialog(null,alf1+ala1);
                                                                                continue;
                                                                                }
                                                                                else {    
                                                                                        if (e51==2) {
                                                                                        JOptionPane.showMessageDialog(null, alf2+ala2);
                                                                                        continue;
                                                                                        }
                                                                                        else {
                                                                                            if (e51==3) {
                                                                                            String e6 = JOptionPane.showInputDialog(alf3+ala3);
                                                                                                        if (e6.equals(j1)||e6.equals(j2)) {
                                                                                                                JOptionPane.showMessageDialog(null, alf31+ala31);
                                                                                                                continue;
                                                                                                                }
                                                                                                        else {
                                                                                                            if (e6.equals(n1)||e6.equals(n2)){
                                                                                                                JOptionPane.showMessageDialog(null, alf3+ ala32);
                                                                                                                continue;
                                                                                                            }
                                                                                                        }
                                                                                            }
                                                                                            else {
                                                                                                if (e51==4) {
                                                                                                    JOptionPane.showMessageDialog(null, alf4+ala4);
                                                                                                    continue;
                                                                                                }
                                                                                                else {
                                                                                                    if (e51==5) {
                                                                                                        JOptionPane.showMessageDialog(null, alf5+ala5);
                                                                                                        continue;
                                                                                                    }
                                                                                                    else {
                                                                                                        if (e51==6) {
                                                                                                            JOptionPane.showMessageDialog(null, alf6+ala6);
                                                                                                            continue;
                                                                                                        }
                                                                                                        else {
                                                                                                           
                                                                                                            if (e51==7) {
                                                                                                                String e7 = JOptionPane.showInputDialog(alf71);
                                                                                                                if (e7.equals(j1)||e7.equals(j2)) {
                                                                                                                    JOptionPane.showMessageDialog(null, alf7+ala7);
                                                                                                                    continue;
                                                                                                                }
                                                                                                                else {
                                                                                                                    if (e7.equals(n1)||e7.equals(n2)) {
                                                                                                                        JOptionPane.showMessageDialog(null,alf7+ala71);
                                                                                                                        continue;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            else {
                                                                                                                if (e51==8) {
                                                                                                                    JOptionPane.showMessageDialog(null, alf8+ala8);
                                                                                                                    continue;
                                                                                                                }
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                }   
                                                                                            }
                                                                                        }
                                                                                }
                                                                        }
                                                                    }               
                                                            }
                                                }
                                        }
                    }           
                }
            }
}

}
 

Robat

Top Contributor
Es ist mehr als nur schwer deinen Code zu verstehen. Beachte daher folgende Hinweise:
- Gib deinen Variablen sprechende Namen. v11 sagen absolut nichts aus. Mir scheint es auch als ob Arrays für dich besser wären als 25 einzelne Variablen
- Du hast mEn viel zu viele Verschachtelungen und ich glaube noch nicht, dass du die wirkliche alle brauchst. Je mehr Verschachtelungen du hast umso unübersichtlicher wird dein Code
- Ich kann mir auch nicht vorstellen, dass du hier wirklich mit Labels arbeiten musst. Die Dinger brauch man nur recht selten wirklich
- Denk dir eine geeignete Struktur für deinen Code aus. Lager ggf. doppelten Code in Methoden aus
- formatier deinen Code

Ich persönlich werde nicht anfangen bei dem Wirrwarr den Code durchzuarbeiten.
Versuch mal mit Worten zu beschreiben, was du erreichen willst. Was ist der Ausgangszustand und was soll wann passieren.
 

DanyC

Mitglied
Verzeih die Abgespeckte Variante.
Natürlich haben die Variablen auch ihre eigenen Namen jedoch habe ich sämtliche Werte und Variablen heraus genommen. Verschachtelungen sind auch bereits minimiert aber weiter ist dies nicht möglich. Das steht auch nicht zur Diskussion sondern die folgenden Problematik.


Ich habe eine Schleife in einer weiteren.
Beide laufen solange bis ein Wert eingegeben wird bei diesem Beispiel ist der Wert >=1.
Wird dieser eingegeben soll die Innere Schleife beendet werden und die äußere weiter laufen.

Mein Prof. meinte es würde über eine Marke ( In diesem Fall mit dem Namen Sprungmarke: ) und einem Verweis nach dem Break auf die Marke funktionieren.

Doch auch bei diesem Beispiel funktioniert dies nicht.
Was muss ich bei dem Break "Sprungmarke" anders machen?=)

Java:
Sprungmarke:   
            while (true) {   
            String a1 = JOptionPane.showInputDialog("Test");
            int i1= Integer.parseInt(a1);
            if (i1==0) {
                System.out.println("Test");
            }
            else {
                while (true) {
                String a2 = JOptionPane.showInputDialog("Test2");
                int i2= Integer.parseInt(a2);
                if (i2>=1) {
                    continue;
                }
                else {
                    break Sprungmarke;
                }
            }


Und nochmals Verzeihung für die "abgespeckte" Variante. Ich sehe selbst das die nicht mehr viel Aussagt :D mb
 

Robat

Top Contributor
Mein Prof. meinte es würde über eine Marke ( In diesem Fall mit dem Namen Sprungmarke: ) und einem Verweis nach dem Break auf die Marke funktionieren.
Brauch man nicht. Genauso wenig wie man hier ein continue braucht.
Java:
while(true) {
    String outerInput = JOptionPane.showInputDialog("Message 1");
    int outerNumber = Integer.parseInt(outerInput);

    System.out.println("[Message 1] entered " + outerNumber);
    
    if(outerNumber == 0) {
        System.out.println("Test");
    } else {
        int innerNumber = 1;
        while(innerNumber >= 1) {
            String innerInput = JOptionPane.showInputDialog("Message 2");
            innerNumber = Integer.parseInt(innerInput);

            System.out.println("[Message 2] entered " + innerNumber);
        }
    }
}
 

mihe7

Top Contributor
Wird dieser eingegeben soll die Innere Schleife beendet werden und die äußere weiter laufen.

Mein Prof. meinte es würde über eine Marke ( In diesem Fall mit dem Namen Sprungmarke: ) und einem Verweis nach dem Break auf die Marke funktionieren.

1. Dein Prof hat Recht
2. Die Marke markiert die entsprechende (while-)Anweisung. Das break mit Marke bezieht sich dann auf die markierte Anweisung, ebenso ein continue
3. Die Marke wäre für ein break somit vor die innere Schleife zu setzen, weil Du die innere Schleife abbrechen willst
4. Die Marke ist somit überflüssig

Lösung s. Kommentar von @Robat.

Die Dinger brauch man nur recht selten wirklich
Ich würde sogar sagen, man braucht sie nie.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A break mit Sprungmarken Java Basics - Anfänger-Themen 41
S break & continue: sprungmarken Java Basics - Anfänger-Themen 10
B break Anweisung Java Basics - Anfänger-Themen 13
A break; mit Einfluss hinter else if Block Java Basics - Anfänger-Themen 3
T Break Continue Java Basics - Anfänger-Themen 4
H Best Practice Wie mit break verschachtelte Schleifen komplett verlassen? Java Basics - Anfänger-Themen 2
D Break funktioniert nicht so wie es soll Java Basics - Anfänger-Themen 8
I Erste Schritte while anstatt for, if und break Java Basics - Anfänger-Themen 10
B Break, Continue und Assert Java Basics - Anfänger-Themen 5
M Erste Schritte Break-Anweisung bei if-else Java Basics - Anfänger-Themen 6
S Break in dem Zusammenhang "legitim"? Java Basics - Anfänger-Themen 4
K Unterschied zwischen break und continue in einer Schleife Java Basics - Anfänger-Themen 14
A mit break if beenden Java Basics - Anfänger-Themen 6
P for Schleife mit break, verstehe die Ausgabe nicht Java Basics - Anfänger-Themen 6
H break/continue in einer if-Abfrage? Java Basics - Anfänger-Themen 15
G continue und break Java Basics - Anfänger-Themen 1
S break Label als Spungmarken vorher definieren Java Basics - Anfänger-Themen 4
G Probleme mit break hier; in if-Bedingung Java Basics - Anfänger-Themen 5
T String: NeueZeile (" ") , Break etc. abfangen Java Basics - Anfänger-Themen 2
I Frage zur Ausgabe do while mit break Java Basics - Anfänger-Themen 2
G break? Java Basics - Anfänger-Themen 2
C Switch / Case Problem, break funktioniert nicht! Java Basics - Anfänger-Themen 3
H Schleifen: break Java Basics - Anfänger-Themen 7
T Gültigkeit von break Java Basics - Anfänger-Themen 5
F Methode abbrechen wie mit break in Schleifen ? Java Basics - Anfänger-Themen 2
H break anweisung Java Basics - Anfänger-Themen 4
G break out; funzt nicht Java Basics - Anfänger-Themen 7
G Sprungmarken Java Basics - Anfänger-Themen 6
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8
J extends Problem Java Basics - Anfänger-Themen 2
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
amgadalghabra algorithmisches Problem Java Basics - Anfänger-Themen 19
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
R ArrayList Problem Java Basics - Anfänger-Themen 6
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
C RegEx Problem Java Basics - Anfänger-Themen 4
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
M Input/Output Fallunterscheidung Problem Java Basics - Anfänger-Themen 17
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
G Subset sum problem mit Backtracking Java Basics - Anfänger-Themen 18
N Problem mit Scanner Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben