Break Sprungmarken Problem einer While True in While True

D

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

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.
 
D

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

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

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.
 
mihe7

mihe7

Top Contributor
Ja, vorsichtig bin ich in der Regel auch, was pauschale Aussagen betrifft. Aber in dem Fall... da kenn' ich nix :)
 
Ä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
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 2
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 4
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
S 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
L Subset sum problem mit Backtracking Java Basics - Anfänger-Themen 18
N Problem mit Scanner Java Basics - Anfänger-Themen 2
J Klassen Problem Java Basics - Anfänger-Themen 8
A Out.format problem. Java Basics - Anfänger-Themen 3
J Problem bei der Programmierung eines Tannenbaums Java Basics - Anfänger-Themen 9
A Array problem Java Basics - Anfänger-Themen 16
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
W Remote Method Invocation RMI - Problem Java Basics - Anfänger-Themen 0
I Ich habe ein Problem Java Basics - Anfänger-Themen 3
A Problem bei returnen eines Wertes Java Basics - Anfänger-Themen 6
M Regex Erstellung Problem Java Basics - Anfänger-Themen 2
D Input/Output Problem bei der Benutzereingabe eines Befehls Java Basics - Anfänger-Themen 14
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
C Regex-Problem Java Basics - Anfänger-Themen 4
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
M Problem in der Modellierung Java Basics - Anfänger-Themen 20
W Wo ist das URL-Problem ? Java Basics - Anfänger-Themen 1
S Generics-Problem: Class, Class<?>, Class<Object> Java Basics - Anfänger-Themen 4
D FileWriter / FileReader Problem Java Basics - Anfänger-Themen 10
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
J Problem mit Array: 2 Klassen Java Basics - Anfänger-Themen 2
S Collections funktionale Listen (ListNode<E>) review und problem beim clone Java Basics - Anfänger-Themen 0
W OOP Vererbung und Problem bei Zählschleife in einer Methode Java Basics - Anfänger-Themen 10
C Problem mit If Else If und Überprüfung eines Counters Java Basics - Anfänger-Themen 3
F Problem mit Listen Java Basics - Anfänger-Themen 5
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1
J Problem bei Umrechnung von Hex in Bin Java Basics - Anfänger-Themen 4
W Problem bei Programmierung von Monte-Carlo-Integration Java Basics - Anfänger-Themen 12
C Java Methoden "Parameter" Problem Java Basics - Anfänger-Themen 16
T Bruchrechner Problem Java Basics - Anfänger-Themen 16
M Problem mit meinem Programm Java Basics - Anfänger-Themen 6
pkm Problem mit der JSP-Syntax Java Basics - Anfänger-Themen 2
J Rückgabe-Problem Java Basics - Anfänger-Themen 10
D Problem mit der Serialisierung Java Basics - Anfänger-Themen 31
W Problem mit dem Wert von boolean-Variable Java Basics - Anfänger-Themen 3
W Problem mit Konsolenausgabe bei StringTokenizer Java Basics - Anfänger-Themen 2
O Verständniss Problem bei abstract class Java Basics - Anfänger-Themen 7
K Java Problem mit Übergabe von argumenten Java Basics - Anfänger-Themen 3
J "travelling salesman problem" mit Java Editor Java Basics - Anfänger-Themen 17
M Problem mit ArrayList Java Basics - Anfänger-Themen 32
B Array Problem Java Basics - Anfänger-Themen 3
O Problem mit SOAP / javax.xml importieren Java Basics - Anfänger-Themen 7
V Variablen Problem mit Matheaufgabe / int first = mScanner.nextInt(); Java Basics - Anfänger-Themen 5
X Problem mit Arraylist in Arraylist Java Basics - Anfänger-Themen 2
cpt.Tomato Scanner problem mit Passwort Login Java Basics - Anfänger-Themen 3
F Switch Case Problem mit Regex lösen? Java Basics - Anfänger-Themen 6
CT9288 Mini Anfänger-Problem mit loops, statements und ; Java Basics - Anfänger-Themen 4
C Two-Center Problem in Java Java Basics - Anfänger-Themen 0
H regex-Problem Java Basics - Anfänger-Themen 2
J Problem bei seriellem Start von Threads Java Basics - Anfänger-Themen 11
E Weg-Suche-Problem rekursiv Java Basics - Anfänger-Themen 12
C Problem: PC ohne Internet und keine Möglichkeit Programme zu laden Java Basics - Anfänger-Themen 5
E Problem mit static Methode Java Basics - Anfänger-Themen 4
J Problem bei Aufgabe "Geldstückelung" Java Basics - Anfänger-Themen 5
P Problem bei Java-Aufgabe Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Anzeige

Neue Themen


Oben