Java-Steuerfluss: Bedingungen und Schleifen

JavaJavaBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab tauchen Sie in die Welt der Java-Steuerflussstrukturen ein. Dies sind essentielle Werkzeuge, die es Ihren Programmen ermöglichen, Entscheidungen zu treffen und Aktionen zu wiederholen. Wir werden drei Hauptkonzepte behandeln:

  1. If-else-Anweisungen für die Entscheidungsfindung
  2. For-Schleifen für die Wiederholung von Aktionen eine bekannte Anzahl von Malen
  3. While-Schleifen für die Wiederholung von Aktionen, wenn Sie nicht wissen, wie oft Sie die Aktion wiederholen müssen

Machen Sie sich keine Sorgen, wenn diese Begriffe Ihnen unbekannt vorkommen - wir werden jedes einzelne ausführlich erklären. Am Ende dieses Labs können Sie Java-Programme schreiben, die Entscheidungen treffen und Aktionen wiederholen können, was eine ganze neue Welt von Möglichkeiten auf Ihrem Coding-Reise eröffnet!


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/BasicSyntaxGroup -.-> java/variables("Variables") java/BasicSyntaxGroup -.-> java/if_else("If...Else") java/BasicSyntaxGroup -.-> java/for_loop("For Loop") java/BasicSyntaxGroup -.-> java/while_loop("While Loop") java/BasicSyntaxGroup -.-> java/output("Output") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/user_input("User Input") subgraph Lab Skills java/variables -.-> lab-413751{{"Java-Steuerfluss: Bedingungen und Schleifen"}} java/if_else -.-> lab-413751{{"Java-Steuerfluss: Bedingungen und Schleifen"}} java/for_loop -.-> lab-413751{{"Java-Steuerfluss: Bedingungen und Schleifen"}} java/while_loop -.-> lab-413751{{"Java-Steuerfluss: Bedingungen und Schleifen"}} java/output -.-> lab-413751{{"Java-Steuerfluss: Bedingungen und Schleifen"}} java/user_input -.-> lab-413751{{"Java-Steuerfluss: Bedingungen und Schleifen"}} end

Das Verständnis von If-Else-Anweisungen

Stellen Sie sich vor, Sie erstellen ein Programm, das Wettertipps gibt. Sie möchten, dass es verschiedene Vorschläge abhängig von der Temperatur macht. Hier kommen If-Else-Anweisungen sehr nützlich ins Spiel!

  1. Öffnen Sie die Datei WeatherAdvisor.java in der WebIDE. Sie werden diesen Code sehen:

    public class WeatherAdvisor {
        public static void main(String[] args) {
            int temperature = 28; // Temperatur in Celsius
    
            System.out.println("The temperature is " + temperature + "°C.");
    
            // TODO: Fügen Sie hier If-Else-Anweisungen hinzu, um Wettertipps zu geben
        }
    }

    Hier ist eine Zusammenfassung des Codes:

    1. public class WeatherAdvisor:

      • Diese Zeile deklariert eine öffentliche Klasse namens WeatherAdvisor.
      • In Java muss jedes Programm mindestens eine Klasse haben, und der Klassenname sollte mit dem Dateinamen übereinstimmen (in diesem Fall WeatherAdvisor.java).
    2. public static void main(String[] args):

      • Dies ist die Hauptmethode, die der Einstiegspunkt jedes Java-Programms ist.
      • public: Diese Methode kann von außerhalb der Klasse aufgerufen werden.
      • static: Diese Methode gehört zur Klasse selbst, nicht zu einer bestimmten Instanz der Klasse.
      • void: Diese Methode gibt keinen Wert zurück.
      • main: Dies ist der Name der Methode. Java sucht nach einer Methode namens "main", um das Programm auszuführen.
      • (String[] args): Dies ermöglicht es der Methode, Befehlszeilenargumente zu akzeptieren (obwohl wir sie in diesem Beispiel nicht verwenden).
    3. int temperature = 28;:

      • Diese Zeile deklariert eine Ganzzahlvariable namens temperature und initialisiert sie mit dem Wert 28.
      • int ist der Datentyp für ganze Zahlen in Java.
      • Der Kommentar // Temperature in Celsius erklärt, was dieser Wert darstellt.
    4. System.out.println("The temperature is " + temperature + "°C.");:

      • Diese Zeile gibt eine Nachricht auf der Konsole aus.
      • System.out.println() ist eine Methode, die Text ausgibt und zur nächsten Zeile wechselt.
      • Der +-Operator wird hier für die Verkettung von Strings verwendet, um den Text mit dem Wert der temperature-Variable zu verbinden.
      • Das °C am Ende fügt das Celsius-Symbol zur Ausgabe hinzu.

    Diese Grundstruktur legt ein Programm fest, das eine Temperatur definiert und sie ausgibt. Sie bildet die Grundlage für das Hinzufügen von komplexerer Logik, wie z. B. die If-Else-Anweisungen, die wir später hinzufügen, um Wettertipps basierend auf dem Temperaturwert zu geben.

  2. Ersetzen Sie den TODO-Kommentar durch folgenden Code:

    if (temperature > 30) {
        System.out.println("It's a hot day. Remember to stay hydrated!");
    } else if (temperature > 20) {
        System.out.println("It's a nice warm day. Enjoy the weather!");
    } else if (temperature > 10) {
        System.out.println("It's a bit cool. You might need a light jacket.");
    } else {
        System.out.println("It's cold. Wear warm clothes!");
    }
If else code example

Lassen Sie uns diesen Code analysieren:

  • Die if-Anweisung prüft, ob die Temperatur über 30°C liegt.
  • Wenn dies nicht der Fall ist, geht es zur ersten else if-Anweisung und prüft, ob die Temperatur über 20°C liegt.
  • Dies wird fortgesetzt, bis eine Bedingung wahr ist oder bis die else-Anweisung am Ende erreicht wird.
  • Nur einer dieser Blöcke wird ausgeführt - sobald eine Bedingung wahr ist, überspringt Java alle anderen.
  1. Speichern Sie die Datei. In den meisten IDEs, einschließlich der WebIDE, können Sie die Datei speichern, indem Sie Strg+S drücken (oder Cmd+S auf einem Mac).

  2. Jetzt lassen Sie uns das Programm kompilieren. Geben Sie in der Terminal am unteren Rand Ihrer WebIDE ein:

    javac ~/project/WeatherAdvisor.java

    Dieser Befehl teilt Java mit, Ihren Code zu kompilieren. Wenn Sie keine Ausgabe sehen, ist das gut! Das bedeutet, dass keine Fehler aufgetreten sind.

  3. Um das Programm auszuführen, geben Sie ein:

    java -cp ~/project WeatherAdvisor

    Der Teil -cp ~/project teilt Java mit, wo es Ihren kompilierten Code finden kann.

  4. Sie sollten folgende Ausgabe sehen:

    The temperature is 28°C.
    It's a nice warm day. Enjoy the weather!

    Dies stimmt mit unserem Code überein, da 28°C über 20°C, aber nicht über 30°C liegt.

  5. Lassen Sie uns experimentieren! Ändern Sie den temperature-Wert im Code auf 35, speichern Sie, kompilieren Sie und führen Sie das Programm erneut aus. Sie sollten sehen:

    The temperature is 35°C.
    It's a hot day. Remember to stay hydrated!
  6. Versuchen Sie, die Temperatur auf 15 und 5 zu ändern, und kompilieren und führen Sie das Programm jeweils erneut aus. Beobachten Sie, wie sich die Ausgabe ändert!

Herzlichen Glückwunsch! Sie haben gerade ein Programm geschrieben, das Entscheidungen trifft. Dies ist ein grundlegendes Konzept in der Programmierung, das Sie ständig verwenden werden.

Arbeiten mit For-Schleifen

Jetzt lernen wir etwas über For-Schleifen. Diese sind ideal, wenn Sie etwas eine bestimmte Anzahl von Malen wiederholen möchten – wie das Erstellen einer Multiplikationstabelle!

  1. Öffnen Sie die Datei MultiplicationTable.java in der WebIDE. Sie werden folgendes sehen:

    public class MultiplicationTable {
        public static void main(String[] args) {
            int number = 5;
            System.out.println("Multiplication table for " + number + ":");
    
            // TODO: Fügen Sie hier eine For-Schleife hinzu, um die Multiplikationstabelle auszugeben
        }
    }
  2. Ersetzen Sie den TODO-Kommentar durch diese For-Schleife:

    for (int i = 1; i <= 10; i++) {
        int result = number * i;
        System.out.println(number + " x " + i + " = " + result);
    }

    Lassen Sie uns dies analysieren:

    • for (int i = 1; i <= 10; i++) ist die For-Schleifenanweisung:
      • int i = 1 erstellt eine Variable i und setzt sie auf 1. Dies geschieht einmal am Anfang.
      • i <= 10 ist die Bedingung. Die Schleife läuft so lange, wie diese wahr ist.
      • i++ erhöht i um 1, jedes Mal wenn die Schleife beendet ist.
    • Innerhalb der Schleife multiplizieren wir number mit i und geben das Ergebnis aus.
    • Dies wird 10 Mal wiederholt, wobei i von 1 bis 10 geht.
  3. Speichern Sie die Datei.

  4. Kompilieren Sie das Programm:

    javac ~/project/MultiplicationTable.java
  5. Führen Sie das Programm aus:

    java -cp ~/project MultiplicationTable
  6. Sie sollten die Multiplikationstabelle für 5 sehen:

    Multiplication table for 5:
    5 x 1 = 5
    5 x 2 = 10
    5 x 3 = 15
    5 x 4 = 20
    5 x 5 = 25
    5 x 6 = 30
    5 x 7 = 35
    5 x 8 = 40
    5 x 9 = 45
    5 x 10 = 50

    Sehen Sie, wie es die Tabelle von 1 bis 10 ausgegeben hat? Das ist unsere For-Schleife in Aktion!

  7. Lassen Sie uns experimentieren! Ändern Sie die Variable number auf 7, speichern Sie, kompilieren Sie und führen Sie das Programm erneut aus. Sie sollten die Multiplikationstabelle für 7 sehen.

  8. Möchten Sie mehr sehen? Versuchen Sie, i <= 10 in der For-Schleife in i <= 15 zu ändern. Dadurch wird die Tabelle bis 15 anstatt bis 10 gehen.

For-Schleifen sind unglaublich nützlich, wenn Sie genau wissen, wie oft Sie etwas wiederholen möchten. Sie werden sie sehr oft auf Ihrer Programmierreise verwenden!

Die Erkundung von While-Schleifen

While-Schleifen sind perfekt für Situationen, in denen Sie im Voraus nicht wissen, wie oft Sie etwas wiederholen müssen. Lassen Sie uns eine verwenden, um ein Zahlen-Ratsspiel zu erstellen!

  1. Öffnen Sie die Datei GuessTheNumber.java in der WebIDE. Sie werden folgendes sehen:

    import java.util.Random;
    import java.util.Scanner;
    
    public class GuessTheNumber {
        public static void main(String[] args) {
            Random random = new Random();
            int numberToGuess = random.nextInt(100) + 1; // Zufällige Zahl zwischen 1 und 100
            Scanner scanner = new Scanner(System.in);
            int guess;
            int attempts = 0;
    
            System.out.println("I'm thinking of a number between 1 and 100. Can you guess it?");
    
            // TODO: Fügen Sie hier eine While-Schleife hinzu, um das Ratsspiel zu implementieren
    
            scanner.close();
        }
    }

    Dieser Code legt eine Zufallszahl fest, die der Spieler erraten muss, und einen Scanner an, um die Eingabe des Spielers zu lesen.

  2. Ersetzen Sie den TODO-Kommentar durch diese While-Schleife:

    while (true) {
        System.out.print("Enter your guess: ");
        guess = scanner.nextInt();
        attempts++;
    
        if (guess < numberToGuess) {
            System.out.println("Too low! Try again.");
        } else if (guess > numberToGuess) {
            System.out.println("Too high! Try again.");
        } else {
            System.out.println("Congratulations! You guessed the number in " + attempts + " attempts.");
            break;
        }
    }

    Lassen Sie uns dies analysieren:

    • while (true) erstellt eine Endlosschleife. Sie läuft so lange, bis wir ihr sagen, dass sie aufhören soll.
    • Innerhalb der Schleife bitten wir um eine Vermutung und erhöhen den Versuchszähler.
    • Wir verwenden If-Else-Anweisungen, um zu prüfen, ob die Vermutung zu niedrig, zu hoch oder richtig ist.
    • Wenn die Vermutung richtig ist, geben wir eine Glückwunschmeldung aus und verwenden break, um die Schleife zu verlassen.
  3. Speichern Sie die Datei.

  4. Kompilieren Sie das Programm:

    javac ~/project/GuessTheNumber.java
  5. Führen Sie das Programm aus:

    java -cp ~/project GuessTheNumber
GuessTheNumber program output
  1. Spielen Sie jetzt das Spiel! Geben Sie so lange Zahlen ein, bis Sie richtig erraten haben. Das Programm wird Ihnen sagen, ob Ihre Vermutung zu hoch oder zu niedrig ist.

Diese While-Schleife läuft so lange, bis die richtige Zahl erraten ist. Wir wissen nicht, wie viele Versuche es dauern wird, weshalb eine While-Schleife hier perfekt ist.

Die Kombination von Steuerstrukturen

Für unsere letzte Herausforderung werden wir If-Else-Anweisungen, For-Schleifen und While-Schleifen kombinieren, um einen Primzahlen-Finder zu erstellen!

  1. Öffnen Sie die Datei PrimeNumberFinder.java in der WebIDE. Sie werden folgendes sehen:

    import java.util.Scanner;
    
    public class PrimeNumberFinder {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int count = 0;
            int number = 2;
    
            System.out.print("How many prime numbers do you want to find? ");
            int maxPrimes = scanner.nextInt();
    
            System.out.println("First " + maxPrimes + " prime numbers:");
    
            // TODO: Implementieren Sie hier die Logik zum Finden von Primzahlen
    
            scanner.close();
        }
    }
  2. Ersetzen Sie den TODO-Kommentar durch diesen Code:

    while (count < maxPrimes) {
        boolean isPrime = true;
    
        for (int i = 2; i <= Math.sqrt(number); i++) {
            if (number % i == 0) {
                isPrime = false;
                break;
            }
        }
    
        if (isPrime) {
            System.out.print(number + " ");
            count++;
        }
    
        number++;
    }

    Dies sieht komplex aus, aber lassen Sie uns es analysieren:

    • Wir verwenden eine While-Schleife, um Primzahlen zu finden, bis wir die gewünschte Anzahl haben.
    • Für jede Zahl verwenden wir eine For-Schleife, um zu prüfen, ob sie eine Primzahl ist.
    • Wir verwenden Math.sqrt(number) als Optimierung – wir müssen nur bis zur Quadratwurzel der Zahl prüfen.
    • Wenn wir einen Teiler finden, wissen wir, dass die Zahl keine Primzahl ist, also setzen wir isPrime auf false und brechen die innere Schleife ab.
    • Wenn isPrime nach der For-Schleife immer noch true ist, geben wir die Zahl aus und erhöhen unseren Zähler.
    • Wir erhöhen immer number am Ende, um zur nächsten Zahl zu gelangen.
  3. Speichern Sie die Datei.

  4. Kompilieren Sie das Programm:

    javac ~/project/PrimeNumberFinder.java
  5. Führen Sie das Programm aus:

    java -cp ~/project PrimeNumberFinder
  6. Wenn Sie dazu aufgefordert werden, geben Sie eine Zahl (z. B. 10) ein, um so viele Primzahlen zu finden. Sie sollten eine Ausgabe wie diese sehen:

    How many prime numbers do you want to find? 10
    First 10 prime numbers:
    2 3 5 7 11 13 17 19 23 29

Dieses Programm zeigt, wie leistungsstark Java sein kann, wenn Sie verschiedene Steuerstrukturen kombinieren. Sie können jetzt Programme erstellen, die Entscheidungen treffen, Aktionen wiederholen und komplexe Probleme lösen!

Zusammenfassung

Tolles Werk! In diesem Lab haben Sie einige der wichtigsten Konzepte in der Java-Programmierung beherrscht:

  1. If-Else-Anweisungen: Sie haben diese verwendet, um Entscheidungen in Ihrem Wetterberater-Programm zu treffen.
  2. For-Schleifen: Sie haben diese verwendet, um eine Multiplikationstabelle zu erstellen und eine Aktion eine bestimmte Anzahl von Malen zu wiederholen.
  3. While-Schleifen: Sie haben diese in Ihrem Ratsspiel verwendet, um eine Aktion so lange zu wiederholen, bis eine Bedingung erfüllt war.
  4. Die Kombination von Steuerstrukturen: Sie haben alles zusammengebracht, um einen Primzahlen-Finder zu erstellen.

Diese Steuerfluss-Strukturen sind die Bausteine komplexer Programme. Mit ihnen können Sie Programme erstellen, die Entscheidungen treffen, Aktionen wiederholen und komplizierte Probleme lösen.

Denken Sie daran, Übung macht den Meister. Versuchen Sie, diese Programme zu modifizieren oder neue Programme unter Verwendung dieser Konzepte zu erstellen. Können Sie ein Programm erstellen, das für jeden Tag der Woche verschiedene Tipps gibt? Oder eines, das eine Multiplikationstabelle für jede Zahl bis 100 ausgibt? Die Möglichkeiten sind endlos!

Bleiben Sie am Programmieren, lernen Sie weiter und am wichtigsten: haben Sie Spaß! Sie sind gut auf dem Weg, ein Java-Experte zu werden.