Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
programmierung:kontrollstrukturen:loops [2025/04/30 17:48] sweprogrammierung:kontrollstrukturen:loops [2025/12/20 14:53] (current) – external edit 127.0.0.1
Line 33: Line 33:
 ## for-Schleife ## for-Schleife
  
- 
-### Struktogramm 
- 
-![for_loop_struktogramm.svg](/programmierung/kontrollstrukturen/for_loop_struktogramm.svg){.align-center} 
- 
-Hier das Symbol für ein Struktogramm: Es erinnert an ein umgefallenes L. 
-Oben steht die Anweisung, die den Schleifenkopf ausmacht.  
- 
-![for_loop_struktogramm_raw.svg](/programmierung/kontrollstrukturen/for_loop_struktogramm_raw.svg){.align-center} 
- 
-Der Schenkel des L läuft so lange, wie es innerhalb der for-Schleife 
-Anweisungen zu erledigen gibt.  
 Eine `for`-Loop ist eine der grundlegendsten und am häufigsten Eine `for`-Loop ist eine der grundlegendsten und am häufigsten
 verwendeten Kontrollstrukturen in Java. verwendeten Kontrollstrukturen in Java.
Line 98: Line 86:
     erhöht.     erhöht.
  
 +### Deklaration und Initalisierung außerhalb des Schleifenkopfes
 +Nicht immer wird die Zählvariable im Schleifenkopf deklariert. Stell dir ein Programm vor, wo die Anzahl der Schleifendurchläufe vom **Ergebnis einer vorherigen Berechnung abhängig** ist:
 +
 +```java
 +int anzahlKinder = 3;
 +int anzahlErwachsene = 12;
 +int anzahlPersonen = anzahlKinder + anzahlErwachsene;
 +for (; anzahlPersonen < 10; anzahlPersonen++) {
 +    System.out.println(anzahlPersonen);
 +}
 +```
 +**Hier wird im Schleifenkopf ganz darauf verzichtet, eine Zählvariable zu deklarieren und initalisieren.  
 +Es wird einfach die Variable `anzahlPersonen` verwendet, die außerhalb der Schleife deklariert und berechnet wurde.**
  
 ## while-Schleife ## while-Schleife
Line 106: Line 107:
 genau das sein werden.  genau das sein werden. 
  
-### Struktogramm +Anders als bei der `for`-Loop wird diesmal nähmlich keine Zählvariable deklariert und
- +
-![while_struktogramm.svg](/programmierung/kontrollstrukturen/while_struktogramm.svg){.align-center} +
- +
-Das Struktogramm der `while`-Loop sieht aus, wie das der `for`-Loop - +
-nur der Pseudocode, der drinnen steht, ist ein anderer. Anders als bei +
-der `for`-Loop wird diesmal nähmlich keine Zählvariable deklariert und+
 initialisiert. Falls wir eine solche Variable haben wollen, müsste diese initialisiert. Falls wir eine solche Variable haben wollen, müsste diese
 von außen beigesteuert werden.  von außen beigesteuert werden. 
  
-![while_anweisung.svg](/programmierung/kontrollstrukturen/while_anweisung.svg){.align-center} 
  
 Eine `while`-Loop checkt vielmehr oftmals, ob bestimmte **Bedingungen** Eine `while`-Loop checkt vielmehr oftmals, ob bestimmte **Bedingungen**
Line 147: Line 141:
 ## do-while-Schleife ## do-while-Schleife
  
 +Die **do-while**-Schleife ist eine Kontrollstruktur in Java, die sich perfekt für Situationen eignet, in denen eine Aktion **mindestens einmal** ausgeführt werden soll, bevor eine Bedingung überprüft wird.  
 +
 +**Merkmale der do-while-Schleife**
 +
 +- Der **Schleifenrumpf** wird immer **mindestens einmal** ausgeführt.
 +- Erst **nach der ersten Iteration** wird die Bedingung überprüft.
 +- Wenn die Bedingung **wahr (true)** bleibt, wird die Schleife erneut durchlaufen.
 +- Falls die Bedingung **falsch (false)** ist, endet die Schleife.
 +
 +### Syntax:
 +```java
 +do {
 +    // Code, der mindestens einmal ausgeführt wird
 +} while (Bedingung);
 +```
 +
 +
 +### Beispiel Würfelspiel
 +
 +Stell dir ein Würfelspiel vor. Es soll so lange gewürfelt werden, bis eine 6 gefallen ist.
 +
 +Das ist der klassische Use-Case für eine `do-while`: 
 +- Mindestens einmal muss eine Aktion ausgeführt werden (gewürfelt)
 +- **Danach** wird die Aktion ausgewertet (wurde eine 6 gewürfelt)
 +
 +```java
 +import java.util.Random;
 +
 +public class WuerfelSpiel {
 +    public static void main(String[] args) {
 +        Random random = new Random();
 +        int wurf;
 +
 +        System.out.println("Würfel wird geworfen...");
 +
 +        do {
 +            wurf = random.nextInt(6) + 1; // Zufallszahl zwischen 1 und 6
 +            System.out.println("Geworfen: " + wurf);
 +        } while (wurf != 6);
 +
 +        System.out.println("Eine 6 wurde geworfen! Spiel beendet.");
 +    }
 +}
 +```