Erfahren Sie mehr über die bedingte Logik mit Verzweigungs- und Schleifenanweisungen.
In diesem Tutorial erfahren Sie, wie Sie einen Code schreiben, der Variablen untersucht und basierend auf diesen Variablen den Ausführungspfad ändert. Sie verwenden Ihren Browser zum interaktiven Schreiben von C#-Code und sehen im Browser die Ergebnisse der Kompilierung und Ausführung Ihres Codes. Dieses Tutorial enthält eine Reihe von Lektionen, in denen Verzweigungs- und Schleifenkonstrukte in C# erkundet werden. In diesen Lektionen lernen Sie die Grundlagen der Programmiersprache C# kennen.
Tipp
Verwenden Sie die Tastenkombination (STRG + v oder BEFEHL + v), um einen Codeschnipsel im Fokusmodus einzufügen.
Treffen von Entscheidungen mithilfe der if-Anweisung
Führen Sie den folgenden Code im interaktiven Fenster aus. Wählen Sie die Schaltfläche Enter focus mode (Fokusmodus aktivieren) aus. Geben Sie anschließend den folgenden Codeblock in das interaktive Fenster ein, und wählen Sie Ausführen aus:
int a = 5;
int b = 6;
if (a + b > 10)
Console.WriteLine("The answer is greater than 10.");
Wenn Sie dies in Ihrer Umgebung ausführen, sollten Sie stattdessen die Anleitungen für die lokale Version befolgen.
Ändern Sie die Deklaration von b
so, dass die Summe kleiner als 10 ist:
int b = 3;
Wählen Sie noch einmal die Schaltfläche Ausführen aus. Da die Antwort kleiner als 10 ist, wird nichts ausgegeben. Die von Ihnen getestete Bedingung ist falsch. Es ist kein Code auszuführen, da Sie lediglich eine der möglichen Verzweigungen für eine if
-Anweisung geschrieben haben: die true-Verzweigung.
Tipp
Bei Ihren ersten Schritten mit C# (oder einer anderen Programmiersprache) kann es zu Fehlern kommen, wenn Sie Codes schreiben. Der Compiler findet diese Fehler und meldet diese. Sollte die Ausgabe Fehlermeldungen enthalten, sehen Sie sich den Beispielcode und den Code im interaktiven Fenster an, um festzustellen, was behoben werden muss. Durch diese Übung lernen Sie die Struktur eines C#-Codes kennen.
Das erste Beispiel veranschaulicht die Vorteile von if
-Anweisungen und boolean-Typen. Ein boolean-Typ ist eine Variable, die einen der folgenden zwei Werte enthalten kann: true
oder false
. In C# ist ein besonderer Typ für boolesche Variablen, bool
, definiert. Die if
-Anweisung überprüft den Wert eines bool
-Typs. Wenn der Wert true
lautet, wird die nach if
folgende Anweisung ausgeführt. Andernfalls wird sie übersprungen.
Dieser Vorgang zum Überprüfen von Bedingungen und Ausführen von Anweisungen basierend auf diesen Bedingungen ist wirkungsvoll. Sehen wir uns dies einmal näher an.
Kombinieren von if- und else-Anweisungen
Um einen anderen Code in den true- und false-Verzweigungen auszuführen, erstellen Sie eine else
-Verzweigung, die ausgeführt wird, wenn die Bedingung falsch ist. Testen Sie Folgendes:
int a = 5;
int b = 3;
if (a + b > 10)
Console.WriteLine("The answer is greater than 10");
else
Console.WriteLine("The answer is not greater than 10");
Die Anweisung, die nach dem Schlüsselwort else
folgt, wird nur ausgeführt, wenn die zu testende Bedingung false
lautet. Wenn Sie if
und else
mit booleschen Bedingungen kombinieren, erhalten Sie sozusagen das Beste aus beiden Welten.
Wichtig
Der Einzug unter den if
- und else
-Anweisungen dient zur besseren Lesbarkeit.
In der Programmiersprache C# werden Einzüge oder Leerräume nicht berücksichtigt.
Die Anweisung nach dem Schlüsselwort if
bzw. else
wird basierend auf der Bedingung ausgeführt. Alle Beispiele in diesem Tutorial folgen der gängigen Vorgehensweise, Zeilen basierend auf der Ablaufsteuerung von Anweisungen mit einem Einzug zu versehen.
Da Einzüge nicht relevant sind, müssen Sie mit {
und }
angeben, dass Sie mehr als eine Anweisung im Rahmen des bedingt ausgeführten Blocks verwenden möchten. C#-Programmierer verwenden solche geschweifte Klammern in der Regel bei allen if
- und else
-Anweisungen. Das folgende Beispiel ist identisch mit dem Inhalt, den Sie erstellt haben. Probieren Sie es aus!
int a = 5;
int b = 3;
if (a + b > 10)
{
Console.WriteLine("The answer is greater than 10");
}
else
{
Console.WriteLine("The answer is not greater than 10");
}
Tipp
Im restlichen Tutorial enthalten alle Codebeispiele geschweifte Klammern gemäß den allgemein gültigen Vorgehensweisen.
Sie können kompliziertere Bedingungen testen:
int a = 5;
int b = 3;
int c = 4;
if ((a + b + c > 10) && (a == b))
{
Console.WriteLine("The answer is greater than 10");
Console.WriteLine("And the first number is equal to the second");
}
else
{
Console.WriteLine("The answer is not greater than 10");
Console.WriteLine("Or the first number is not equal to the second");
}
Die ==
-Symboltests für Gleichheit. Die Verwendung von ==
unterscheidet den Test auf Gleichheit von der Zuweisung, die Sie in a = 5
gesehen haben.
Das Zeichen &&
steht für „and“. Es bedeutet, dass beide Bedingungen „true“ lauten müssen, damit die Anweisung in der true-Verzweigung ausgeführt wird. Diese Beispiele zeigen außerdem, dass Sie in jeder bedingten Verzweigung mehrere Anweisungen verwenden können, sofern Sie sie mit {
und }
umschließen.
Sie können auch ||
für „or“ verwenden.
int a = 5;
int b = 3;
int c = 4;
if ((a + b + c > 10) || (a == b))
{
Console.WriteLine("The answer is greater than 10");
Console.WriteLine("Or the first number is equal to the second");
}
else
{
Console.WriteLine("The answer is not greater than 10");
Console.WriteLine("And the first number is not equal to the second");
}
Ändern Sie die Werte von a
, b
und c
, und wechseln Sie zwischen &&
und ||
, um sie zu untersuchen. So werden Sie besser verstehen, wie die Operatoren &&
und ||
funktionieren.
Wiederholen von Vorgängen durch Schleifen
Ein weiterer wichtiger Begriff zur Erstellung umfangreicherer Programme sind Schleifen. Schleifen werden verwendet, um Anweisungen zu wiederholen, die mehrmals ausgeführt werden sollen. Testen Sie den folgenden Code im interaktiven Fenster:
int counter = 0;
while (counter < 10)
{
Console.WriteLine($"Hello World! The counter is {counter}");
counter++;
}
Die while
-Anweisung prüft eine Bedingung und führt die Anweisung nach while
aus. Es wiederholt die Überprüfung der Bedingung und die Ausführung dieser Anweisungen, bis die Bedingung „false“ lautet.
In diesem Beispiel kommt ein weiterer neuer Operator vor. Das ++
-Zeichen nach der counter
-Variable ist der increment-Operator. Er erhöht den Wert des Zählers um 1 und speichert diesen Wert in der Zählervariable.
Wichtig
Stellen Sie sicher, dass die Schleifenbedingung while
zu „false“ wechselt, nachdem Sie den Code ausgeführt haben. Erstellen Sie anderenfalls eine Endlosschleife, durch die das Programm niemals beendet wird. Dies werden wir nicht testen, da bei der Engine, die Ihren Code ausführt, eine Zeitüberschreitung auftritt und keine Ausgabe von Ihrem Programm angezeigt wird.
Die while
-Schleife testet die Bedingung, bevor der Code nach while
ausgeführt wird. Die do
... while
-Schleife führt den Code zuerst aus und überprüft anschließend die Bedingung. Diese sieht folgendermaßen aus:
int counter = 0;
do
{
Console.WriteLine($"Hello World! The counter is {counter}");
counter++;
} while (counter < 10);
Diese do
-Schleife und die vorherige while
-Schleife funktionieren auf dieselbe Weise.
Sehen wir uns nun eine letzte Schleifenanweisung an.
Arbeiten mit der for-Schleife
Eine weitere häufig verwendete Schleifenanweisung, die bei C#-Codes vorkommt, ist die for
-Schleife. Testen Sie den folgenden Code im interaktiven Fenster:
for (int counter = 0; counter < 10; counter++)
{
Console.WriteLine($"Hello World! The counter is {counter}");
}
Dieser funktioniert auf dieselbe Weise wie die while
-Schleife und die do
-Schleife, die Sie bereits verwendet haben. Die for
-Anweisung besteht aus drei Teilen, die steuern, wie sie ausgeführt wird.
Der erste Teil ist der for-Initialisierer: int counter = 0;
deklariert, dass counter
die Schleifenvariable ist, und legt den Anfangswert auf 0
fest.
Der mittlere Teil ist die for-Bedingung: counter < 10
deklariert, dass diese for
-Schleife ausgeführt wird, solange der Wert des Zählers kleiner als 10 ist.
Der letzte Teil ist der for-Iterator: counter++
gibt an, wie die Schleifenvariable geändert wird, nachdem der Block nach der for
-Anweisung ausgeführt wurde. Hier gibt dieser an, dass counter
bei jeder Blockausführung um 1 erhöht werden soll.
Experimentieren Sie selbst damit. Testen Sie Folgendes:
- Ändern Sie den Initialisierer, um mit einem anderen Wert zu beginnen.
- Ändern Sie die Bedingung, um an einem anderen Wert anzuhalten.
Wenn Sie fertig sind, fahren Sie damit fort, mithilfe der erworbenen Kenntnisse selbst Codes zu schreiben.
Eine andere Schleifenanweisung wird in diesem Tutorial nicht behandelt: die foreach
-Anweisung. Mit der foreach
-Anweisung wird die Anweisung für jedes Element in einer Sequenz von Elementen ausgeführt. Da sie am häufigsten mit Sammlungen verwendet wird, wird sie im nächsten Tutorial behandelt.
Erstellte geschachtelte Schleifen
Eine while
-, do
- oder for
-Schleife kann in einer anderen Schleife geschachtelt werden, um mithilfe der Kombination aus jedem Element in der äußeren Schleife und jedem Element in der inneren Schleife eine Matrix zu erstellen. Durch die Umsetzung dessen können Sie mehrere alphanumerische Paare erstellen, die Zeilen und Spalten darstellen.
Eine for
-Schleife kann die Zeilen generieren:
for (int row = 1; row < 11; row++)
{
Console.WriteLine($"The row is {row}");
}
Eine andere Schleife kann die Spalten generieren:
for (char column = 'a'; column < 'k'; column++)
{
Console.WriteLine($"The column is {column}");
}
Sie können eine Schleife innerhalb der anderen schachteln, um Paare zu bilden:
for (int row = 1; row < 11; row++)
{
for (char column = 'a'; column < 'k'; column++)
{
Console.WriteLine($"The cell is ({row}, {column})");
}
}
Sie können erkennen, dass sich die äußere Schleife für jede vollständige Ausführung der inneren Schleife einmal erhöht. Kehren Sie die Schachtelung der Zeilen und Spalten um, und erkennen Sie selbst, was sich ändert.
Kombinieren von Branches und Schleifen
Nachdem Sie nun die if
-Anweisung und die Schleifenkonstrukte in der Programmiersprache C# kennengelernt haben, versuchen Sie, einen C#-Code zu schreiben, der die Summe aller ganzen Zahlen von 1 bis 20 ermittelt, die durch 3 teilbar sind. Im Folgenden einige Tipps:
- Der
%
-Operator ermittelt den Restwert einer Divisionsoperation. - Die
if
-Anweisung ermittelt die Bedingung, um festzustellen, ob eine Zahl in der Summe berücksichtigt werden soll. - Die
for
-Schleife ermöglicht es, eine Reihe von Schritten für alle Zahlen von 1 bis 20 zu wiederholen.
Probieren Sie es selbst aus. Prüfen Sie dann, wie Sie abgeschnitten haben. Hinweis: Sie sollten 63 als Antwort erhalten.
Übung abgeschlossen
Sieht ihr Code ungefähr wie der Folgende aus?
int sum = 0;
for (int number = 1; number < 21; number++)
{
if (number % 3 == 0)
{
sum = sum + number;
}
}
Console.WriteLine($"The sum is {sum}");
Herzlichen Glückwunsch!
Sie haben das interaktive Tutorial „Verzweigungen und Schleifen“ abgeschlossen. Wählen Sie unten den Link Listensammlung aus, um das nächste interaktive Tutorial zu starten, oder besuchen Sie die .NET-Website, um das .NET SDK herunterzuladen, ein Projekt auf Ihrem Computer zu erstellen und weiter zu programmieren. Über den Abschnitt „Nächste Schritte“ gelangen Sie wieder zu diesen Tutorials.
Weitere Informationen zu diesen Begriffen finden Sie in diesen Artikeln:
Liegt ein Problem mit diesem Abschnitt vor? Wenn ja, senden Sie uns Feedback, damit wir den Abschnitt verbessern können.