JavaRush /Java-Blog /Random-DE /Break-Anweisung in Java
iloveski
Level 37
Москва

Break-Anweisung in Java

Veröffentlicht in der Gruppe Random-DE
Hallo an alle Kollegen und Interessierte.
Break-Anweisung in Java - 1
Heute werden wir uns eine Funktion der Programmiersprache Java wie den Break-Operator ansehen. Dies ist der erste Artikel zum Thema Übergangsoperatoren. Wenn er Ihnen gefällt, schreibe ich gerne mehr. Ich möchte gleich darauf hinweisen, dass dieser Artikel in erster Linie für Anfänger gedacht ist und Fortgeschrittene hier möglicherweise nichts Neues für sich finden. So lass uns gehen. In Java gibt es zwei Möglichkeiten, die Reihenfolge zu ändern, in der Programmanweisungen ausgeführt werden: Sprunganweisungen und Mechanismen zur Ausnahmebehandlung. In Java gibt es drei Sprungoperatoren: Break, Continue und Return. Heute lade ich Sie ein, sich den Betreiber genauer anzusehen break. Die Ausnahmebehandlung ist ein so umfassendes Thema, dass es den Rahmen dieses Artikels sprengen würde. Es gibt drei Möglichkeiten, die Break-Anweisung in Java zu verwenden. Die erste und beliebteste Möglichkeit besteht darin, breakdie Schleife vorzeitig zu verlassen, zum Beispiel:
public class SimpleExample {
    public static void main(String[] args) {
        findNumberInLoop(3);
    }
    public static void findNumberInLoop(int number){
        for (int i = 0; i < 10; i++) {
            if (i == number) {
                break;
            }
            System.out.println(i);
        }
        System.out.println("cycle was finished");
    }
}
In diesem Beispiel wird Folgendes angezeigt:
1
2
cycle was finished
Dies bedeutet, dass die Schleifenausführung vorzeitig beendet wird, wenn der Schleifenzähler igleich dem übergebenen Parameter number, also der Zahl 3, wird. Wenn das Programm über mehrere verschachtelte Schleifen verfügt, unterbrechen Sie die Ausgaben nur in der innersten Schleife, zum Beispiel:
public class SimpleExample {
    public static void main(String[] args) {
        findNumberInLoop(3);
    }
    public static void findNumberInLoop(int number){
        for(int i = 0; i < 5; i++) {
            for (int j =0; j < 10; j++) {
                if(j == number) {
                    break;
                }
                System.out.print(j);
            }
            System.out.println();
        }
        System.out.println("cycles was finished");
    }
}
Dieses Beispiel erzeugt die Ausgabe:
012
012
012
012
012
cycles was finished
Wie aus dem Beispiel hervorgeht, wird die innere Schleife jedes Mal bei der Nummer 3 (Parameter number) unterbrochen und die äußere Schleife wird wie vorgesehen fünfmal ausgeführt. In Java können Sie mehr als eine Break-Anweisung innerhalb einer Schleife verwenden, dies wird jedoch nicht empfohlen, da die Lesbarkeit und Struktur des Codes dadurch stark beeinträchtigt wird. Die zweite Verwendung breakbesteht darin, die Ausführung von Anweisungen in Zweigen zu unterbrechen switch, zum Beispiel:
public class SimpleExample {
    public static void main(String[] args) {
        square(2);
    }

    public static void square(int number){
        switch (number){
            case 1:
                System.out.println(number*number);
                break;
            case 2:
                System.out.println(number*number);
                break;
            case 3:
                System.out.println(number*number);
                break;
        }
        System.out.println("after switch");
    }
}
Wenn Sie dieses Beispiel ausführen, wird die Ausgabe erzeugt:
4
after switch
Die break-Anweisung übergab die Kontrolle an den Code, der auf den gesamten Block folgte switch. breakWenn Sie in switchdiesem Beispiel nicht angeben :
public class SimpleExample {
    public static void main(String[] args) {
        square(2);
    }
    public static void square(int number){
        switch (number){
            case 1:
                System.out.println(number*number);
            case 2:
                System.out.println(number*number);
            case 3:
                System.out.println(number*number);
        }
        System.out.println("after switch");
    }
}
Die Ausgabe wird nicht wie erwartet sein:
4
4
after switch
Dies geschah, weil das Programm nach der Ausführung des Blocks mit der Ausführung aller nachfolgenden Case-case 2 Blöcke fortfuhr , was uns die entsprechende Ausgabe lieferte. Manchmal kann diese Funktion des Betreibers für uns von Vorteil sein, zum Beispiel: switch
public class SimpleExample {
    public static void main(String[] args) {
        compare(2);
        compare(7);
        compare(12);
    }
    public static void compare(int number){
        switch (number){
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println("number is less than 5 or equal 5");
                break;
            case 6:
            case 7:
            case 8:
            case 9:
                System.out.println("number is greater than 5");
                break;
            default:
                System.out.println("number is less than 0 or greater than 9");
        }
        System.out.println("after switch");
    }
}
Dieses Programm vergleicht eine gegebene Zahl mit der Zahl 5 und gibt folgende Ausgabe aus:
after switch
number is greater than 5
after switch
number is less than 0 or greater than 9
after switch
Wenn eine Methode zum ersten Mal aufgerufen wird, switchübergibt der Operator die Kontrolle an den Operator case 2und dann an den Operator breakin case 5. Der zweite Aufruf ähnelt dem ersten, beginnt jedoch mit c case 7. Der dritte Aufruf findet nicht in allen Fällen einen geeigneten Wert, daher wird der Operator ausgeführt default. breakDie dritte Möglichkeit besteht darin, den Operator anstelle des C-Operators zu verwenden goto. Dazu verwenden wir eine spezielle Form des Operators, die mit einer Bezeichnung breakaufgerufen wird break. Dieses Formular sieht aus wie break метка;ein Label – dies ist normalerweise ein beliebiger geeigneter Name aus dem Java-Namespace, der einem Codeblock vorangestellt ist. Darüber hinaus wird der Code nach dem Anwenden dieses Codeblocks breakmit einer Beschriftung an der Stelle nach dem Block mit der entsprechenden Beschriftung weiter ausgeführt, zum Beispiel:
public class SimpleExample {
    public static void main(String[] args) {
        howWeUseLabels(true);
        System.out.println();
        howWeUseLabels(false);
    }
    public static void howWeUseLabels(boolean bool) {
        firstBlock:{
            secondBlock:{
                thirdBlock:{
                    System.out.println("We will see it always");
                    if(bool) {
                        break secondBlock;
                    }
                    System.out.println("We won't see it if bool == true");
                }
                System.out.println("We won't see it if bool == true");
            }
            System.out.println("We will see it always");
        }
    }
}
Dieses Beispiel erzeugt die folgende Ausgabe:
We will see it always
We will see it always

We will see it always
We won't see it if bool == true
We won't see it if bool == true
We will see it always
Nach dem ersten Methodenaufruf breakübergibt der Operator die Kontrolle an das Ende des Blocks secondBlock, beendet secondBlockund thirdBlockund führt println()am Ende einen anderen Operator aus firstBlock. Nach dem zweiten Anruf werden alle Leitungen auf dem Bildschirm angezeigt. Etiketten können auch zur Kennzeichnung von Zyklen verwendet werden. Beachten Sie, dass Sie zu einem Label nur innerhalb des durch das Label angegebenen Codeblocks wechseln können. Ein solcher Code lässt sich beispielsweise nicht kompilieren:
public class SimpleExample {
    public static void main(String[] args) {
        label:{
            System.out.println("inside label");
        }
        if(true) {
            break label;
        }
        System.out.println("This is error");
    }
}
Hinweise zur Sauberkeit von Code und Anweisungen break: Es wird allgemein empfohlen, die Anweisung breaksehr sorgfältig zu verwenden, da die Verwendung breakdie Schleife schwieriger zu verstehen macht und den Programmierer dazu zwingt, in die Schleife zu schauen, um die Nuancen ihrer Funktionsweise zu verstehen. Es gibt eine heuristische Regel, die break Sie in kürzeren Schleifen sicherer und in langen und tief verschachtelten Schleifen mit größerer Vorsicht anwenden können, da dies die Wahrscheinlichkeit von Fehlern erhöht und das Lesen und Verstehen Ihres Codes durch andere Programmierer erschwert. Wie ich oben geschrieben habe, weist die Verwendung einer großen Anzahl von break. im gesamten Code darauf hin, dass der Programmierer nicht vollständig versteht, warum er seinen Code so geschrieben hat, wie er es getan hat. Es könnte eine Überlegung wert sein, eine solche Schleife umzugestalten, indem man sie in mehrere kleinere Schleifen aufteilt. Seien Sie vorsichtig, wenn Sie break eine Bezeichnung als Ersatz für verwenden goto, da dies die Codestruktur verkompliziert. Das ist alles, was ich Ihnen heute über den Operator in Java erzählen wollte break. Ich freue mich über konstruktive Kritik und bin bei Interesse auch gerne bereit, eine Fortsetzung zum Thema Operatoren continueund zu schreiben.return
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION