Heim  >  Artikel  >  Java  >  Unterstützt Java Goto?

Unterstützt Java Goto?

王林
王林nach vorne
2023-09-05 23:33:071009Durchsuche

Unterstützt Java Goto?

Java ist für seine Konsistenz und Vielseitigkeit bekannt. Java bietet mehrere Hauptmethoden zur Steuerung des Flusses. Den etymologischen Konstrukten von Java fehlen Kontrollflussspezifikationen, wie die „goto“-Anweisung zeigt. In diesem Teil werden wir sehen, warum Java keine Goto-Funktion hat, einige seiner Optionen und wie man sie verwendet, um ähnliche Ziele zu erreichen.

Grammatik

Werfen wir zunächst einen Blick auf die Sprachstruktur von Java. Mit der Goto-Interpretation können Sie Codeabschnitte basierend auf ihren Namen frei austauschen. Goto generiert einen komplexen Kontrollfluss in C und C++, aber der Code ist oft unlesbar und wertlos.

label: {
   // Code section 1
   if (condition) {
      // Code section 2
      if (anotherCondition) {
         // Code section 3
         break label;
      } else {
         // Code section 4
         if (yetAnotherCondition) {
            // Code section 5
            if (finalCondition) {
               // Code section 6
            }
         }
      }
   }
   // Code section 7
}

Grammatikerklärung

Die Autoren von Java haben den goto-Ausdruck weggelassen, weil er den Code unübersichtlich und schwer verständlich machen würde. Sie bevorzugen einen strukturierten Kontrollfluss für saubereren Code und weniger Fehler.

Algorithmus

Schritt-für-Schritt-Algorithmus zur Verwaltung des Kontrollflusses in Java -

  • Einstiegspunkt – Die Ausführung des Programms beginnt am ausgewählten Einstiegspunkt, der die Hauptmethode oder ein anderer Einstiegspunkt sein kann.

  • Sequentielle Ausführung – Der Code wird Zeile für Zeile kontinuierlich ausgeführt, es sei denn, es wird eine Kontrollflussinterpretation festgestellt. In diesem Fall springt die Ausführung zur folgenden Assertionsroutine.

  • Anweisungen zum Erstellen von Schleifen Schleifenanweisungen (einschließlich for-, while- und do-while-Anweisungen) ermöglichen die Wiederholung von Codeblöcken, bis eine bestimmte Bedingung erfüllt ist.

Methode

Obwohl es in Java kein Goto gab, haben Entwickler Möglichkeiten gefunden, ähnliche Funktionen zu erstellen.

Methode 1: Beschriftungen und bedingte Anweisungen

Anleitung

Tags können Codesegmente markieren und bedingte Ausdrücke können die Ausführung basierend auf Bedingungen steuern. Goto mangelt es an Kontrolle und Lesbarkeit.

Beispiel

public class GotoExample {
   public static void main(String[] args) {
      GotoExample program = new GotoExample();
      program.execute();
   }

   private void execute() {
      label: {
         System.out.println("Executing Code Section 1");
         // Code section 1
         if (condition) {
            System.out.println("Executing Code Section 2");
            // Code section 2
            if (anotherCondition) {
               System.out.println("Executing Code Section 3");
               // Code section 3
                  break label;
            } else {
               System.out.println("Executing Code Section 4");
               // Code section 4
               if (yetAnotherCondition) {
                  System.out.println("Executing Code Section 5");
                  // Code section 5
                  if (finalCondition) {
                     System.out.println("Executing Code Section 6");
                     // Code section 6
                  }
               }
            }
         }
         System.out.println("Executing Code Section 7");
         // Code section 7
      }
   }

   private boolean condition = true;
   private boolean anotherCondition = true;
   private boolean yetAnotherCondition = true;
   private boolean finalCondition = true;
}

Ausgabe

Executing Code Section 1
Executing Code Section 2
Executing Code Section 3

Anleitung

Um die Ausführung zu demonstrieren, fügen wir System.out.println()-Anweisungen in jeden Codeabschnitt ein. Dadurch können Sie die Ausführung verfolgen und sehen, was je nach Situation ausgeführt wird. Das Control Center zeigt Meldungen zur Codeausführung an.

Methode 2 Verwenden Sie die Methode zum Einkapseln

Konstruieren Sie den Java-Kontrollfluss, indem Sie Code in Methoden kapseln. Methodenaufrufe ermöglichen es uns, durch die Software zu navigieren, indem wir sie in überschaubare Teile zerlegen.

Beispiel

public class GotoExample {
   public static void main(String[] args) {
      GotoExample program = new GotoExample();
      program.execute();
   }

   private void execute() {
      section1();
      if (condition()) {
         section2();
         if (anotherCondition()) {
            section3();
            return;
         } else {
            section4();
            if (yetAnotherCondition()) {
               section5();
               if (finalCondition()) {
                  section6();
               }
            }
         }
      }
      section7();
   }

   private void section1() {
      System.out.println("Executing Code Section 1");
      // Code section 1
   }

   private void section2() {
      System.out.println("Executing Code Section 2");
      // Code section 2
   }

   private void section3() {
      System.out.println("Executing Code Section 3");
      // Code section 3
   }

   private void section4() {
      System.out.println("Executing Code Section 4");
      // Code section 4
   }

   private void section5() {
      System.out.println("Executing Code Section 5");
      // Code section 5
   }

   private void section6() {
      System.out.println("Executing Code Section 6");
      // Code section 6
   }

   private void section7() {
      System.out.println("Executing Code Section 7");
      // Code section 7
   }

   private boolean condition() {
      // Define the condition logic
      return true;
   }

   private boolean anotherCondition() {
      // Define the anotherCondition logic
      return true;
   }

   private boolean yetAnotherCondition() {
      // Define the yetAnotherCondition logic
      return true;
   }

   private boolean finalCondition() {
      // Define the finalCondition logic
      return true;
   }
}

Ausgabe

Executing Code Section 1
Executing Code Section 2
Executing Code Section 3

Anleitung

Ich habe die Methoden section3(), section4(), section5(), section6() und section7() hinzugefügt. Condition, anotherCondition, YetAnotherCondition und FinalCondition werden durch ihre Prozeduren ersetzt. Diese Methoden sind für Sie geeignet.

Methode 3 Zustandsmaschine

Zustandsmaschine verwaltet den komplexen Kontrollfluss. Zustandsmaschinen stellen Übergänge mathematisch dar. Zustandsmaschinen organisieren den Kontrollfluss.

Beispiel

enum State {
   STATE_1, STATE_2, STATE_3, STATE_4, STATE_5, STATE_6, STATE_7
}

public class GotoExample {
   public static void main(String[] args) {
      GotoExample program = new GotoExample();
      program.execute();
   }

   private void execute() {
      State currentState = State.STATE_1;

      while (currentState != State.STATE_7) {
         switch (currentState) {
            case STATE_1:
               section1();
               currentState = State.STATE_2;
               break;
            case STATE_2:
               if (condition()) {
                  section2();
                  currentState = State.STATE_3;
               } else {
                  currentState = State.STATE_4;
               }
               break;
               // Define other states and transitions
         }
      }
   }

   private void section1() {
      System.out.println("Executing Code Section 1");
      // Code section 1
   }

   private void section2() {
      System.out.println("Executing Code Section 2");
      // Code section 2
   }

   // Define other section methods and states

   private boolean condition() {
      // Define the condition logic
      return true;
   }
}

Ausgabe

Executing Code Section 1
Executing Code Section 2

Anleitung

Wir haben der technischen Spezifikation von condition() bedingtes Denken hinzugefügt. Ändern Sie nach Möglichkeit die Richtliniengruppe für condition().

Methode 4 Ausnahmebehandlung

Ausnahmebehandlung in Java oder Java-Ausnahmen mit aktivierten, nicht aktivierten und Fehlern mit Beispielen und Verwendung der Schlüsselwörter try, Catch, Throw, Throws und Final.

Beispiel

public class GotoExample {
   public static void main(String[] args) {
      try {
         section1();
         if (condition()) {
            section2();
            if (anotherCondition()) {
               section3();
               throw new GotoException();
            } else {
               section4();
               if (yetAnotherCondition()) {
                  section5();
                  if (finalCondition()) {
                     section6();
                     throw new GotoException();
                  }
               }
            }
         }
         section7();
      } catch (GotoException e) {
         // Handle the exception to continue execution
         // or perform any necessary operations
      }
   }

   private static void section1() {
      System.out.println("Executing Code Section 1");
      // Code section 1
   }

   private static void section2() {
      System.out.println("Executing Code Section 2");
      // Code section 2
   }

   private static void section3() {
      System.out.println("Executing Code Section 3");
      // Code section 3
   }

   private static void section4() {
      System.out.println("Executing Code Section 4");
      // Code section 4
   }

   private static void section5() {
      System.out.println("Executing Code Section 5");
      // Code section 5
   }

   private static void section6() {
      System.out.println("Executing Code Section 6");
      // Code section 6
   }

   private static void section7() {
      System.out.println("Executing Code Section 7");
      // Code section 7
   }

   private static boolean condition() {
      // Define the condition logic
      return true;
   }

   private static boolean anotherCondition() {
      // Define the anotherCondition logic
      return true;
   }

   private static boolean yetAnotherCondition() {
      // Define the yetAnotherCondition logic
      return true;
   }

   private static boolean finalCondition() {
      // Define the finalCondition logic
      return true;
   }
}

class GotoException extends Exception {
   // Custom exception class to simulate the "goto" behavior
}

Ausgabe

Executing Code Section 1
Executing Code Section 2
Executing Code Section 3

Anleitung

Methode 4 Kopieren Sie die goto-Anweisung, um Ausnahmen zu behandeln. Um zum Code zu „springen“, geben wir eine GotoException aus. Versuchen Sie, GotoException zu verwenden, um die Ausführung zu steuern.

Fazit

Der geordnete Kontrollflussansatz von Java funktioniert auch ohne Goto-Ausdrücke. Notationen, endliche Verbindungen, Zustandsautomaten und sequentielle Programmierparadigmen helfen Ingenieuren, fehlerfreien und effizienten Code zu schreiben. Um vertrauenswürdige, leicht verständliche Java-Programme zu erstellen, müssen Sie diese Möglichkeiten akzeptieren und Best Practices befolgen.

Das obige ist der detaillierte Inhalt vonUnterstützt Java Goto?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen