Appearance
Kapitel 7: Schleifen (for, while, do-while)
🎯 Lernziele
In diesem Kapitel lernst du:
for-Schleife (bekannt Anzahl Wiederholungen)while-Schleife (Bedingung vor Prüfung)do...while-Schleife (mindestens einmal ausführen)breakundcontinueSchlüsselwörter- Verschachtelte Schleifen
- Schleifen-Übungsaufgaben (Muster drucken, Summen, Zahlen raten)
7.1 for-Schleife (bekannte Wiederholungsanzahl)
🔄 Wann for verwenden?
Verwende for, wenn du weißt, wie oft die Schleife ausgeführt werden soll!
📝 Syntax
java
for (initialisierung; bedingung; aktualisierung) {
// Code-Block (wird wiederholt ausgeführt)
}Ablauf:
- Initialisierung: Variable wird einmalig initialisiert
- Bedingung: Wenn
true, wird Code ausgeführt; wennfalse, endet Schleife - Code-Block: Wird ausgeführt
- Aktualisierung: Variable wird geändert (z.B.
i++) - Zurück zu Schritt 2
📋 Beispiel 1: Zahlen 1 bis 5 ausgeben
java
public class ForBeispiel1 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
System.out.println("i = " + i);
}
System.out.println("Schleife beendet!");
}
}Ausgabe:
i = 1
i = 2
i = 3
i = 4
i = 5
Schleife beendet!📋 Beispiel 2: Summe von 1 bis 100 berechnen
java
public class ForBeispiel2 {
public static void main(String[] args) {
int summe = 0;
for (int i = 1; i <= 100; i++) {
summe = summe + i; // Oder: summe += i;
}
System.out.println("Summe von 1 bis 100: " + summe); // 5050
}
}📋 Beispiel 3: Gerade Zahlen von 1 bis 20 ausgeben
java
public class ForBeispiel3 {
public static void main(String[] args) {
for (int i = 2; i <= 20; i += 2) {
System.out.println(i);
}
}
}Ausgabe:
2
4
6
8
10
12
14
16
18
207.2 while-Schleife (Bedingung vor Prüfung)
🔄 Wann while verwenden?
Verwende while, wenn du nicht weißt, wie oft die Schleife ausgeführt wird, aber die Bedingung vor dem ersten Durchlauf prüfen willst!
📝 Syntax
java
while (bedingung) {
// Code-Block (wird ausgeführt, solange Bedingung wahr ist)
}📋 Beispiel 1: Zahlen von 1 bis 5 ausgeben
java
public class WhileBeispiel1 {
public static void main(String[] args) {
int i = 1; // Initialisierung
while (i <= 5) { // Bedingung
System.out.println("i = " + i);
i++; // Aktualisierung (nicht vergessen!)
}
System.out.println("Schleife beendet!");
}
}Ausgabe:
i = 1
i = 2
i = 3
i = 4
i = 5
Schleife beendet!📋 Beispiel 2: Geheimzahl raten (vereinfacht)
java
import java.util.Scanner;
public class WhileBeispiel2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int geheimzahl = 42;
int rateversuch;
System.out.println("Errate die Zahl zwischen 1 und 100!");
while (true) { // Endlosschleife (wird mit break beendet)
System.out.print("Dein Tipp: ");
rateversuch = scanner.nextInt();
if (rateversuch == geheimzahl) {
System.out.println("Richtig! Die Zahl war " + geheimzahl);
break; // Schleife beenden
} else if (rateversuch < geheimzahl) {
System.out.println("Zu niedrig!");
} else {
System.out.println("Zu hoch!");
}
}
scanner.close();
}
}⚠️ Achtung: Endlosschleife vermeiden!
java
// ❌ Gefährlich: Endlosschleife!
int i = 1;
while (i <= 5) {
System.out.println(i);
// i++ fehlt → i bleibt 1 → Bedingung i <= 5 bleibt immer wahr!
}
// ✅ Richtig:
int i = 1;
while (i <= 5) {
System.out.println(i);
i++; // i wird erhöht, irgendwann i > 5 → Schleife endet
}7.3 do...while-Schleife (mindestens einmal ausführen)
🔄 Wann do...while verwenden?
Verwende do...while, wenn der Code mindestens einmal ausgeführt werden soll, auch wenn die Bedingung anfangs false ist!
📝 Syntax
java
do {
// Code-Block (wird mindestens einmal ausgeführt)
} while (bedingung);📋 Beispiel 1: Menü anzeigen (bis Benutzer "Beenden" wählt)
java
import java.util.Scanner;
public class DoWhileBeispiel1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int auswahl;
do {
System.out.println("\n=== Menü ===");
System.out.println("1. Option 1");
System.out.println("2. Option 2");
System.out.println("3. Beenden");
System.out.print("Wähle: ");
auswahl = scanner.nextInt();
switch (auswahl) {
case 1:
System.out.println("Option 1 gewählt!");
break;
case 2:
System.out.println("Option 2 gewählt!");
break;
case 3:
System.out.println("Programm wird beendet...");
break;
default:
System.out.println("Ungültige Auswahl!");
}
} while (auswahl != 3);
scanner.close();
}
}📋 Beispiel 2: Passwort abfragen (mindestens einmal)
java
import java.util.Scanner;
public class DoWhileBeispiel2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String passwort;
int versuche = 0;
do {
System.out.print("Passwort eingeben: ");
passwort = scanner.nextLine();
versuche++;
if (!passwort.equals("geheim123")) {
System.out.println("Falsches Passwort! Versuch " + versuche);
}
} while (!passwort.equals("geheim123") && versuche < 3);
if (passwort.equals("geheim123")) {
System.out.println("Login erfolgreich!");
} else {
System.out.println("Zu viele Fehlversuche!");
}
scanner.close();
}
}🔍 Unterschied: while vs. do...while
java
// while: Bedingung wird ZUERST geprüft
int x = 10;
while (x < 5) {
System.out.println("While: x = " + x); // Wird NICHT ausgeführt!
}
// do...while: Code wird ZUERST ausgeführt, dann Bedingung geprüft
int y = 10;
do {
System.out.println("Do-While: y = " + y); // Wird EINMAL ausgeführt!
y++;
} while (y < 5);Ausgabe:
Do-While: y = 107.4 break und continue Schlüsselwörter
🛑 break: Schleife sofort beenden
java
public class BreakBeispiel {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break; // Schleife sofort beenden, wenn i == 5
}
System.out.println(i);
}
System.out.println("Nach der Schleife");
}
}Ausgabe:
1
2
3
4
Nach der Schleife⏭️ continue: Aktuellen Durchlauf überspringen
java
public class ContinueBeispiel {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue; // Springt zur Aktualisierung (i++), überspringt System.out.println(i)
}
System.out.println(i);
}
}
}Ausgabe:
1
2
4
5📋 Beispiel: Gerade Zahlen ausgeben (mit continue)
java
public class ContinueBeispiel2 {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
if (i % 2 != 0) { // Wenn i ungerade ist
continue; // Überspringt ungerade Zahlen
}
System.out.println(i + " ist gerade.");
}
}
}Ausgabe:
2 ist gerade.
4 ist gerade.
6 ist gerade.
8 ist gerade.
10 ist gerade.7.5 Verschachtelte Schleifen
🔄 Schleifen in Schleifen
Du kannst Schleifen innerhalb von Schleifen haben!
📋 Beispiel 1: Einfach verschachtelt
java
public class VerschachteltBeispiel1 {
public static void main(String[] args) {
for (int i = 1; i <= 3; i++) {
System.out.println("Äußere Schleife: i = " + i);
for (int j = 1; j <= 2; j++) {
System.out.println(" Innere Schleife: j = " + j);
}
}
}
}Ausgabe:
Äußere Schleife: i = 1
Innere Schleife: j = 1
Innere Schleife: j = 2
Äußere Schleife: i = 2
Innere Schleife: j = 1
Innere Schleife: j = 2
Äußere Schleife: i = 3
Innere Schleife: j = 1
Innere Schleife: j = 2📋 Beispiel 2: Multiplikationstabelle (1-10)
java
public class VerschachteltBeispiel2 {
public static void main(String[] args) {
System.out.println("Multiplikationstabelle:");
for (int i = 1; i <= 10; i++) {
for (int j = 1; j <= 10; j++) {
System.out.printf("%4d", i * j); // 4 Zeichen breit
}
System.out.println(); // Zeilenumbruch nach jeder Zeile
}
}
}Ausgabe (Auszug):
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
...7.6 Schleifen-Übungsaufgaben
🏋️ Übung 1: Muster drucken (Sternchen-Dreieck)
Aufgabe: Drucke ein rechtwinkliges Dreieck aus Sternchen.
*
**
***
****
*****Lösung:
java
public class Uebung1 {
public static void main(String[] args) {
int zeilen = 5;
for (int i = 1; i <= zeilen; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println(); // Zeilenumbruch
}
}
}🏋️ Übung 2: Summe berechnen (Gerade Zahlen 1-100)
Aufgabe: Berechne die Summe aller geraden Zahlen von 1 bis 100.
Lösung:
java
public class Uebung2 {
public static void main(String[] args) {
int summe = 0;
for (int i = 2; i <= 100; i += 2) {
summe += i;
}
System.out.println("Summe aller geraden Zahlen von 1 bis 100: " + summe); // 2550
}
}🏋️ Übung 3: Zahlen raten Spiel
Aufgabe: Computer wählt eine Zufallszahl zwischen 1 und 100. Benutzer muss sie erraten. Nach jedem Versuch Hinweis: "Zu hoch" oder "Zu niedrig".
Lösung:
java
import java.util.Random;
import java.util.Scanner;
public class Uebung3 {
public static void main(String[] args) {
Random random = new Random();
Scanner scanner = new Scanner(System.in);
int geheimzahl = random.nextInt(100) + 1; // 1-100
int versuche = 0;
int rateversuch;
System.out.println("=== Zahlenraten Spiel ===");
System.out.println("Ich habe mir eine Zahl zwischen 1 und 100 gedacht.");
do {
System.out.print("Dein Tipp: ");
rateversuch = scanner.nextInt();
versuche++;
if (rateversuch < geheimzahl) {
System.out.println("Zu niedrig!");
} else if (rateversuch > geheimzahl) {
System.out.println("Zu hoch!");
} else {
System.out.println("Richtig! Du hast " + versuche + " Versuche gebraucht.");
}
} while (rateversuch != geheimzahl);
scanner.close();
}
}📝 Zusammenfassung
In diesem Kapitel hast du gelernt:
- ✅
for-Schleife (bekannte Wiederholungsanzahl) - ✅
while-Schleife (Bedingung vor Prüfung) - ✅
do...while-Schleife (mindestens einmal ausführen) - ✅
breakundcontinueSchlüsselwörter - ✅ Verschachtelte Schleifen
- ✅ Schleifen-Übungsaufgaben
💡 Merksatz für Anfänger
"Verwende
forwenn du die Anzahl weißt,whilewenn die Bedingung vorher geprüft werden muss, unddo...whilewenn mindestens einmal ausgeführt werden soll!"
🎯 Nächste Schritte
Im nächsten Kapitel lernst du:
- Arrays (Kapitel 8)
- Wie man mehrere Werte in einem Container speichert
- Array-Definition, Zugriff, Durchlaufung
- Häufige Array-Operationen (Maximum, Minimum, Summe, Suche)
Bereit für Arrays? Los geht's! 🚀
📚 Weiterführende Links:
💬 Fragen?
Hinterlasse einen Kommentar!
