Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen For-Schleife | Schleifen
C# Grundlagen

bookFor-Schleife

Eine Schleife ermöglicht es, einen Codeabschnitt beliebig oft auszuführen. Es gibt verschiedene Arten von Schleifen. In C# verwendet man die for loop, wenn ein Codeabschnitt eine bestimmte Anzahl von Malen ausgeführt werden soll.

Das Grundmuster (Syntax) einer for-Schleife ist wie folgt:

for(initiation; condition; operation) { 
    // code to execute
}


Betrachten wir ein Beispiel, in dem wir diese Syntax verwenden:

main.cs

main.cs

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // Output "Hello World" ten times. for(int i = 0; i < 10; i++) { Console.WriteLine("Hello World"); } } } }

Hinweis

i++ entspricht i = i + 1. Der Wert der Variablen wird um 1 erhöht. Entsprechend verringert i-- den Wert um 1.

  • int i = 0 ist der Initialisierungsteil. Die Initialisierung erfolgt beim Start der Schleife. Zu Beginn der Schleife wird eine neue temporäre Variable namens i erstellt und mit dem Wert 0 initialisiert.
  • i < 10 ist die Bedingung. Die Bedingung wird bei jeder Iteration (Wiederholung) der Schleife überprüft. Die Schleife führt den eingeschlossenen Codeblock aus, solange die Bedingung wahr ist.
  • i++ ist die Operation, die nach jeder Iteration ausgeführt wird. Die Operation ist üblicherweise eine Erhöhung oder Verringerung. Da der Wert von i nach jeder Iteration erhöht wird, wird die Bedingung i < 10 nach 10 Durchläufen falsch und die Schleife endet.

Es ist wichtig zu verstehen, dass alle drei Komponenten der for-Schleife — initialization, condition und operation — optional sind. Sie können jede davon weglassen, was jedoch das Verhalten der Schleife verändern kann.

Obwohl es nicht empfohlen wird, können Sie die Schleifenvariable außerhalb der Schleife deklarieren und den Teil initialization leer lassen. Die Schleife funktioniert dann weiterhin, allerdings ist Vorsicht geboten, da dies zu unerwarteten Ergebnissen führen kann, wenn es nicht korrekt gehandhabt wird.

main.cs

main.cs

copy
12345678910111213141516
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10; i++) { Console.WriteLine("Hello World"); } } } }

Wir können auch den Teil operation entfernen und ihn stattdessen am Ende des Codeblocks der Schleife platzieren. Die Schleife verhält sich weiterhin wie zuvor, da die Variable i nach jeder Iteration weiterhin inkrementiert wird.

main.cs

main.cs

copy
1234567891011121314151617
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10;) { Console.WriteLine("Hello World"); i++; } } } }

Beachte, dass im obigen Code weiterhin ein Semikolon (;) in der Schleifensyntax an der Stelle steht, an der int i = 0 erwartet wurde. Dieses Semikolon muss immer vorhanden sein, unabhängig davon, ob eine Schleifenvariable erstellt wird oder nicht.

Auch das Entfernen der Schleifenbedingung ist möglich, führt jedoch dazu, dass die Schleife unendlich läuft, sofern sie nicht manuell beendet wird (worauf in späteren Kapiteln noch näher eingegangen wird).

main.cs

main.cs

copy
1234567891011121314151617
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // In this case the variable `i` is useless so we don't create it. // The loop never ends for(;;) { Console.WriteLine("Hello World"); } } } }

Hinweis

Wir haben in der Schleifensyntax for(;;) weiterhin beide Semikolons eingefügt, da diese zwingend erforderlich sind. Andernfalls zeigt der Compiler Fehler an.

Da sich der Wert von i bei jeder Iteration ändert, können wir dies zu unserem Vorteil nutzen. Um dies zu verdeutlichen, betrachten wir ein einfaches Programm, das den Wert von i bei jeder Iteration ausgibt:

main.cs

main.cs

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 0; i < 10; i++) { Console.WriteLine(i); } } } }

Beachte, dass die Schleife bei 9 endet, da sie mit der Ziffer 0 beginnt. Die Gesamtanzahl der Iterationen betrug zehn. Wir können Initialisierung, Bedingung und Operation anpassen, um die zehn geraden Zahlen von 2 bis 20 auszugeben.

Hinweis

Gerade Zahlen sind Zahlen, die durch 2 teilbar sind. Zum Beispiel 2, 4, 6, 8, 10 usw. Gerade Zahlen schließen auch die Zahl 0 ein, aber in diesen Beispielen betrachten wir nur gerade Zahlen größer als 0.

main.cs

main.cs

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 2; i <= 20; i += 2) { Console.WriteLine(i); } } } }

Hinweis

i += 2 ist eine kürzere Schreibweise für i = i + 2. Diese Syntax ist auch für andere Operatoren gültig, zum Beispiel i -= 2, i *= 2, i /= 2, i %= 2 usw.

Die Schleife beginnt mit 0 und erhöht den Wert von i bei jeder Iteration um 2. Wir haben die Bedingung auf i <= 20 geändert, sodass die Schleife bei 20 endet.

Die obige Logik dient dem Verständnis der Funktionsweise einer for-Schleife. Wir können eine viel einfachere Logik verwenden, um die ersten zehn geraden Zahlen auszugeben:

main.cs

main.cs

copy
1234567891011121314
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 10; i++) { Console.WriteLine(i * 2); } } } }

In diesem Fall ist die Bedingung wesentlich einfacher. Wenn wir beispielsweise die ersten 27 geraden Zahlen benötigen, müssten wir beim vorherigen Verfahren wissen, welches die 27. gerade Zahl ist, um die Bedingung zu formulieren. In diesem Fall müssen wir jedoch lediglich die Bedingung zu i <= 27 anpassen:

main.cs

main.cs

copy
1234567891011121314
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 27; i++) { Console.WriteLine(i * 2); } } } }
question mark

Was wird die Ausgabe des folgenden Programms sein? Der Wert von sum erhöht sich in jeder Iteration um i, daher sind die Werte während der ersten vier Durchläufe: 1, 3, 6, 10.

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 1

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you explain how to use a for loop to print odd numbers?

What happens if I remove all three components from the for loop?

Can you show an example of an infinite for loop and how to stop it?

Awesome!

Completion rate improved to 1.59

bookFor-Schleife

Swipe um das Menü anzuzeigen

Eine Schleife ermöglicht es, einen Codeabschnitt beliebig oft auszuführen. Es gibt verschiedene Arten von Schleifen. In C# verwendet man die for loop, wenn ein Codeabschnitt eine bestimmte Anzahl von Malen ausgeführt werden soll.

Das Grundmuster (Syntax) einer for-Schleife ist wie folgt:

for(initiation; condition; operation) { 
    // code to execute
}


Betrachten wir ein Beispiel, in dem wir diese Syntax verwenden:

main.cs

main.cs

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // Output "Hello World" ten times. for(int i = 0; i < 10; i++) { Console.WriteLine("Hello World"); } } } }

Hinweis

i++ entspricht i = i + 1. Der Wert der Variablen wird um 1 erhöht. Entsprechend verringert i-- den Wert um 1.

  • int i = 0 ist der Initialisierungsteil. Die Initialisierung erfolgt beim Start der Schleife. Zu Beginn der Schleife wird eine neue temporäre Variable namens i erstellt und mit dem Wert 0 initialisiert.
  • i < 10 ist die Bedingung. Die Bedingung wird bei jeder Iteration (Wiederholung) der Schleife überprüft. Die Schleife führt den eingeschlossenen Codeblock aus, solange die Bedingung wahr ist.
  • i++ ist die Operation, die nach jeder Iteration ausgeführt wird. Die Operation ist üblicherweise eine Erhöhung oder Verringerung. Da der Wert von i nach jeder Iteration erhöht wird, wird die Bedingung i < 10 nach 10 Durchläufen falsch und die Schleife endet.

Es ist wichtig zu verstehen, dass alle drei Komponenten der for-Schleife — initialization, condition und operation — optional sind. Sie können jede davon weglassen, was jedoch das Verhalten der Schleife verändern kann.

Obwohl es nicht empfohlen wird, können Sie die Schleifenvariable außerhalb der Schleife deklarieren und den Teil initialization leer lassen. Die Schleife funktioniert dann weiterhin, allerdings ist Vorsicht geboten, da dies zu unerwarteten Ergebnissen führen kann, wenn es nicht korrekt gehandhabt wird.

main.cs

main.cs

copy
12345678910111213141516
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10; i++) { Console.WriteLine("Hello World"); } } } }

Wir können auch den Teil operation entfernen und ihn stattdessen am Ende des Codeblocks der Schleife platzieren. Die Schleife verhält sich weiterhin wie zuvor, da die Variable i nach jeder Iteration weiterhin inkrementiert wird.

main.cs

main.cs

copy
1234567891011121314151617
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10;) { Console.WriteLine("Hello World"); i++; } } } }

Beachte, dass im obigen Code weiterhin ein Semikolon (;) in der Schleifensyntax an der Stelle steht, an der int i = 0 erwartet wurde. Dieses Semikolon muss immer vorhanden sein, unabhängig davon, ob eine Schleifenvariable erstellt wird oder nicht.

Auch das Entfernen der Schleifenbedingung ist möglich, führt jedoch dazu, dass die Schleife unendlich läuft, sofern sie nicht manuell beendet wird (worauf in späteren Kapiteln noch näher eingegangen wird).

main.cs

main.cs

copy
1234567891011121314151617
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // In this case the variable `i` is useless so we don't create it. // The loop never ends for(;;) { Console.WriteLine("Hello World"); } } } }

Hinweis

Wir haben in der Schleifensyntax for(;;) weiterhin beide Semikolons eingefügt, da diese zwingend erforderlich sind. Andernfalls zeigt der Compiler Fehler an.

Da sich der Wert von i bei jeder Iteration ändert, können wir dies zu unserem Vorteil nutzen. Um dies zu verdeutlichen, betrachten wir ein einfaches Programm, das den Wert von i bei jeder Iteration ausgibt:

main.cs

main.cs

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 0; i < 10; i++) { Console.WriteLine(i); } } } }

Beachte, dass die Schleife bei 9 endet, da sie mit der Ziffer 0 beginnt. Die Gesamtanzahl der Iterationen betrug zehn. Wir können Initialisierung, Bedingung und Operation anpassen, um die zehn geraden Zahlen von 2 bis 20 auszugeben.

Hinweis

Gerade Zahlen sind Zahlen, die durch 2 teilbar sind. Zum Beispiel 2, 4, 6, 8, 10 usw. Gerade Zahlen schließen auch die Zahl 0 ein, aber in diesen Beispielen betrachten wir nur gerade Zahlen größer als 0.

main.cs

main.cs

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 2; i <= 20; i += 2) { Console.WriteLine(i); } } } }

Hinweis

i += 2 ist eine kürzere Schreibweise für i = i + 2. Diese Syntax ist auch für andere Operatoren gültig, zum Beispiel i -= 2, i *= 2, i /= 2, i %= 2 usw.

Die Schleife beginnt mit 0 und erhöht den Wert von i bei jeder Iteration um 2. Wir haben die Bedingung auf i <= 20 geändert, sodass die Schleife bei 20 endet.

Die obige Logik dient dem Verständnis der Funktionsweise einer for-Schleife. Wir können eine viel einfachere Logik verwenden, um die ersten zehn geraden Zahlen auszugeben:

main.cs

main.cs

copy
1234567891011121314
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 10; i++) { Console.WriteLine(i * 2); } } } }

In diesem Fall ist die Bedingung wesentlich einfacher. Wenn wir beispielsweise die ersten 27 geraden Zahlen benötigen, müssten wir beim vorherigen Verfahren wissen, welches die 27. gerade Zahl ist, um die Bedingung zu formulieren. In diesem Fall müssen wir jedoch lediglich die Bedingung zu i <= 27 anpassen:

main.cs

main.cs

copy
1234567891011121314
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 27; i++) { Console.WriteLine(i * 2); } } } }
question mark

Was wird die Ausgabe des folgenden Programms sein? Der Wert von sum erhöht sich in jeder Iteration um i, daher sind die Werte während der ersten vier Durchläufe: 1, 3, 6, 10.

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 1
some-alt