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

For-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# verwenden wir die for loop, wenn wir einen Codeabschnitt eine bestimmte Anzahl von Malen ausführen möchten.

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

main.cs

main.cs

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

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

main.cs

main.cs

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"); } } } }
Note
Hinweis

i++ ist dasselbe wie i = i + 1. Es erhöht den Wert der Variablen um 1. 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 Iterationen 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, aber dies kann das Verhalten der Schleife verändern.

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, aber Sie müssen vorsichtig sein, da dies zu unerwarteten Ergebnissen führen kann, wenn es nicht richtig gehandhabt wird.

main.cs

main.cs

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 an das Ende des Codeblocks der Schleife setzen. Die Schleife verhält sich weiterhin wie zuvor, da die Variable i nach jeder Iteration weiterhin inkrementiert wird.

main.cs

main.cs

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 immer noch ein Semikolon (;) in der Schleifensyntax steht, wo eigentlich 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

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 essenziell 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 verstehen, betrachten wir ein einfaches Programm, das den Wert von i bei jeder Iteration ausgibt:

main.cs

main.cs

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 die Initialisierung, die Bedingung und die 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

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

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 viel 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 ändern:

main.cs

main.cs

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 ist die Ausgabe des folgenden Programms? 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.

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 37

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

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

Abschnitt 1. Kapitel 37
some-alt