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
course content

Kursinhalt

C# Grundlagen

C# Grundlagen

1. Erste Schritte
2. Umgang mit Datentypen
3. Kontrollstrukturen
4. Schleifen
5. Arrays
6. Methoden

book
For-Schleife

Eine Schleife ermöglicht es uns, ein Stück Code so oft auszuführen, wie wir wollen. Es gibt verschiedene Arten von Schleifen. In C# verwenden wir die for loop, wenn wir ein Stück Code eine bestimmte Anzahl von Malen ausführen möchten.

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


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

cs

main

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++ ist dasselbe wie i = i + 1. Es erhöht den Wert der Variablen um 1. Ebenso verringert i-- den Wert um 1.

  • int i = 0 ist der Initialisierungsteil. Die Initialisierung erfolgt, wenn die Schleife startet. Zu Beginn der Schleife wird eine neue temporäre Variable namens i erstellt und mit einem Wert von 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 so lange aus, wie die Bedingung wahr ist.
  • i++ ist die Operation, die nach jeder Iteration ausgeführt werden soll. Die Operation ist normalerweise 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 stoppt.

Es ist wichtig zu verstehen, dass alle drei Komponenten der for-Schleife — initialization, condition und operation — optional sind. Sie können jede von ihnen weglassen, aber dies könnte das Verhalten der Schleife ändern.

Obwohl es nicht empfohlen wird, können Sie die Schleifenvariable außerhalb der Schleife deklarieren und den initialization-Teil leer lassen. Das bedeutet, dass die Schleife weiterhin funktioniert, aber Sie müssen vorsichtig sein, da dies zu unerwarteten Ergebnissen führen kann, wenn es nicht richtig gehandhabt wird.

cs

main

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 operation-Teil entfernen und ihn am Ende des Codeblocks der Schleife platzieren. Die Schleife wird sich genauso verhalten wie zuvor, da die Variable i nach jeder Iteration weiterhin inkrementiert wird.

cs

main

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++; } } } }

Beachten Sie, dass wir im obigen Code immer noch ein Semikolon (;) in der Schleifensyntax platziert haben, wo int i = 0 erwartet wurde. Dieses Semikolon muss immer vorhanden sein, unabhängig davon, ob wir eine Schleifenvariable erstellen oder nicht.

Das Entfernen der Schleifenbedingung ist ebenfalls möglich, aber es führt dazu, dass die Schleife unendlich läuft, falls sie nicht manuell beendet wird (worüber wir in den späteren Kapiteln mehr erfahren werden).

cs

main

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 immer noch beide Semikolons in der Schleifensyntax for(;;) eingefügt, diese sind unerlässlich, sonst 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, schauen wir uns ein einfaches Programm an, das den Wert von i bei jeder Iteration ausgibt:

cs

main

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

Beachten Sie, dass es bei 9 endet, weil es mit der Ziffer 0 beginnt. Die Gesamtanzahl der Iterationen betrug zehn. Wir können die Initialisierung, die Bedingung und die Operation ändern, 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 wir werden in diesen Beispielen nur mit geraden Zahlen über 0 arbeiten.

cs

main

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, damit die Schleife bei 20 stoppt.

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

cs

main

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 viel einfacher. Wenn wir zum Beispiel die ersten 27 geraden Zahlen haben möchten, müssen wir wissen, was die 27. gerade Zahl ist, um die Bedingung für die vorherige Methode zu formulieren. In diesem Fall müssen wir jedoch einfach die Bedingung zu i <= 27 ändern:

cs

main

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); } } } }
Was wird die Ausgabe des folgenden Programms sein? Der Wert von `sum` erhöht sich bei jeder Iteration um `i`, daher wird sein Wert während der ersten vier Iterationen `1`, `3`, `6`, `10` sein.

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

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 1
We're sorry to hear that something went wrong. What happened?
some-alt