C# IF-, Switch-, For- und While-Schleifenanweisungen [Beispiele]

โšก Intelligente Zusammenfassung

In C# steuern bedingte Anweisungen und Schleifen den Programmablauf, indem sie Codeblรถcke basierend auf einer bestimmten Logik ausfรผhren oder wiederholen. Die Anweisungen `if`, `switch`, `while` und `for` ermรถglichen es einem Programm, Entscheidungen zu treffen und effizient zu iterieren.

  • ๐Ÿ”€ Ablaufsteuerung: Bedingte Anweisungen verรคndern die Ausfรผhrungsreihenfolge, sodass ein Programm nur die Anweisungen ausfรผhrt, die seiner Logik entsprechen.
  • โ“ Wenn-Anweisung: Die if-Anweisung wertet einen booleschen Ausdruck aus und fรผhrt einen Block aus, wenn dieser wahr ist, und einen anderen, wenn er falsch ist.
  • ๐Ÿ”ข Switch-Anweisung: Die Switch-Anweisung vergleicht einen Wert mit mehreren Fallbezeichnungen und verwendet `break`, um die Anweisung zu beenden, sobald eine รœbereinstimmung gefunden wurde.
  • ๐Ÿ” While-Schleife: Die while-Schleife wiederholt einen Anweisungsblock, solange seine Bedingung wahr ist, was fรผr eine unbekannte Anzahl von Iterationen geeignet ist.
  • ๐Ÿ”„ For-Schleife: Die for-Schleife initialisiert, testet und inkrementiert einen Zรคhler in einer Zeile; ideal, wenn die Anzahl der Wiederholungen bekannt ist.
  • ๐Ÿค– KI-Unterstรผtzung: GitHub Copilot entwirft if-, switch- und loop-Logik, wรคhrend ML.NET dieselben Bedingungen wiederverwendet, um Machine-Learning-Pipelines zu verzweigen.

C# Bedingte Anweisungen

Flusskontrolle und bedingte Anweisungen

Flusskontrolle und bedingte Anweisungen sind in jeder Programmiersprache verfรผgbar, um den Fluss eines Programms zu รคndern.

Wenn jemand beispielsweise nur eine bestimmte Gruppe von Anweisungen basierend auf einer bestimmten Logik ausfรผhren mรถchte, dann sind Ablaufsteuerung und bedingte Anweisungen hilfreich.

Sie werden ein besseres Verstรคndnis erhalten, wenn wir die verschiedenen Anweisungen durchgehen, die in C# verfรผgbar sind.

Bitte beachten Sie, dass der gesamte folgende Code in der Datei Program.cs erstellt wird.

1) If-Anweisung

Die if-Anweisung dient dazu, einen booleschen Ausdruck auszuwerten, bevor eine Reihe von Anweisungen ausgefรผhrt wird. Ergibt die Auswertung โ€žwahrโ€œ, wird eine bestimmte Gruppe von Anweisungen ausgefรผhrt, andernfalls eine andere.

In unserem folgenden Beispiel wird ein Vergleich fรผr eine Variable namens โ€žWertโ€œ durchgefรผhrt. Ist der Wert der Variable kleiner als 10, wird eine Anweisung ausgefรผhrt, andernfalls eine andere.

If-Anweisung

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program 
 {
  static void Main(string[] args) 
  {
   Int32 value = 11;
   
   if(value<10)
   {
    Console.WriteLine("Value is less than 10");
   }
   else
   {
    Console.WriteLine("Value is greater than 10");
   }
    Console.ReadKey();
  }
 }
}

Code Erlรคuterung:-

  1. Wir definieren zunรคchst eine Variable namens value und setzen sie auf den Wert 11.
  2. AnschlieรŸend verwenden wir die โ€žifโ€œ-Anweisung, um zu prรผfen, ob der Wert kleiner als 10 der Variablen ist. Das Ergebnis wird entweder wahr oder falsch sein.
  3. Wenn die if-Bedingung โ€žtrueโ€œ ergibt, senden wir die Meldung โ€žWert ist kleiner als 10โ€œ an die Konsole.
  4. Wenn die if-Bedingung โ€žfalschโ€œ ergibt, senden wir die Meldung โ€žWert ist grรถรŸer als 10โ€œ an die Konsole.

Wenn der obige Code richtig eingegeben und das Programm erfolgreich ausgefรผhrt wird, wird die folgende Ausgabe angezeigt.

Ausgang:

If-Anweisung

Wir kรถnnen deutlich erkennen, dass die โ€žifโ€œ-Anweisung mit โ€žfalschโ€œ bewertet wurde. Daher wurde die Meldung โ€žWert ist grรถรŸer als 10โ€œ an die Konsole gesendet.

2) Switch-Anweisung

Die switch-Anweisung ist eine Erweiterung der โ€žifโ€œ-Anweisung. Wenn Sie mehrere Ausdrรผcke haben, die auf einmal ausgewertet werden mรผssen, wird das Schreiben mehrerer โ€žIfโ€œ-Anweisungen zu einem Problem.

Die Switch-Anweisung wird verwendet, um einen Ausdruck auszuwerten und basierend auf dem Ergebnis des Ausdrucks verschiedene Anweisungen auszufรผhren. Wenn eine Bedingung nicht wahr ist, geht die Switch-Anweisung zur nรคchsten Bedingung รผber und so weiter.

Schauen wir uns das anhand des folgenden Beispiels an. Hier vergleichen wir erneut den Wert einer Variablen namens โ€žWertโ€œ. Wir prรผfen dann, ob der Wert gleich 1, 2 oder etwas ganz anderes ist.

Switch-Anweisung

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   Int32 value=11;
   switch(value) 
   {
     case 1: Console.WriteLine("Value is 1");	
     break;
     case 2: Console.WriteLine("Value is 2");
     break;
     default: Console.WriteLine("value is different");
     break;
   }
  }
 }
}

Code Erlรคuterung:-

  1. Wir definieren zunรคchst eine Variable namens โ€žvalueโ€œ und setzen sie auf den Wert 11.
  2. AnschlieรŸend verwenden wir die Anweisung โ€žswitchโ€œ, um den Wert der Variablen โ€žvalueโ€œ zu รผberprรผfen.
  3. Case-Anweisungen werden verwendet, um unterschiedliche Bedingungen festzulegen. Basierend auf den Bedingungen kann eine Reihe von Anweisungen ausgefรผhrt werden. Eine Switch-Anweisung kann mehrere Case-Bedingungen haben. Die erste case-Anweisung prรผft, ob der Wert der Variablen gleich 1 ist.
  4. Wenn die erste Case-Anweisung wahr ist, wird die Meldung โ€žWert ist 1โ€œ in die Konsole geschrieben.
  5. Die break-Anweisung wird verwendet, um die gesamte switch-Anweisung zu unterbrechen, sobald eine Bedingung wahr ist.
  6. Die Standardbedingung ist eine Sonderbedingung. Dies bedeutet lediglich, dass, wenn kein Fallausdruck als wahr ausgewertet wird, der Satz von Anweisungen fรผr die Standardbedingung ausgefรผhrt wird.

Wenn der obige Code richtig eingegeben und das Programm erfolgreich ausgefรผhrt wird, wird die folgende Ausgabe angezeigt. Die Ausgabe druckt den Standardwert โ€žWert ist unterschiedlichโ€œ, da keine Bedingung erfรผllt ist.

Ausgang:

Switch-Anweisung

3) While-Schleife

Die while-Schleife wird fรผr iterative Zwecke verwendet. Angenommen, Sie mรถchten einen bestimmten Satz von Anweisungen eine bestimmte Anzahl von Malen wiederholen, dann wird eine While-Schleife verwendet.

In unserem Beispiel unten verwenden wir die while-Anweisung, um den Wert einer Variablen โ€žiโ€œ anzuzeigen. Mit der while-Anweisung wird der Wert dreimal angezeigt.

While-Schleife

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   Int32 value=3,i=0;
   
   while(i<value)
   {
    Console.WriteLine(i);
    i=i+1;
   }
    Console.ReadKey(); 
  }
 }
}

Code Erlรคuterung:-

  1. Zwei ganze Zahlen Variablen sind definiert, wobei einer der Wert und der andere โ€žiโ€œ ist. Die Wertvariable wird als Obergrenze verwendet, bis zu der wir unsere while-Anweisung iterieren sollten. Und โ€žiโ€œ ist die Variable, die wรคhrend der Iteration verarbeitet wird.
  2. In der while-Anweisung wird der Wert von โ€žiโ€œ stรคndig mit der Obergrenze verglichen.
  3. Hier zeigen wir der Konsole den Wert von โ€žiโ€œ an. Wir erhรถhen auch den Wert von โ€žiโ€œ.

Wenn der obige Code richtig eingegeben und das Programm erfolgreich ausgefรผhrt wird, wird die folgende Ausgabe angezeigt.

Ausgang:

While-Schleife

Hier sieht man, dass die while-Anweisung dreimal ausgefรผhrt und gleichzeitig inkrementiert wird. Und jedes Mal wird der aktuelle Wert der Variable 'i' angezeigt.

4) Fรผr Schleife

Die โ€žforโ€œ-Schleife wird auch fรผr iterative Zwecke verwendet. Angenommen, Sie mรถchten eine bestimmte Abfolge von Anweisungen eine bestimmte Anzahl von Malen wiederholen, dann kommt die โ€žforโ€œ-Schleife zum Einsatz.

In unserem Beispiel unten verwenden wir die โ€žforโ€œ-Anweisung, um den Wert einer Variablen โ€žiโ€œ anzuzeigen. Die โ€žforโ€œ-Anweisung wird verwendet, um den Wert dreimal anzuzeigen.

Fรผr Schleife

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   for(Int32 i=0;i<3;i++)
   {
    Console.WriteLine(i);
   }
    Console.ReadKey(); 
  
  }
 }
}

Code Erlรคuterung:-

  1. Das Schlรผsselwort โ€žforโ€œ wird verwendet, um die โ€žfor-Schleifeโ€œ-Anweisung zu starten.
  2. In der โ€žfor-Schleifeโ€œ definieren wir drei Dinge. Die erste besteht darin, den Wert einer Variablen zu initialisieren, der in der โ€žfor-Schleifeโ€œ verwendet wird.
  3. Die zweite besteht darin, den Wert von โ€žiโ€œ mit einer Obergrenze zu vergleichen. In unserem Fall ist die Obergrenze der Wert 3 (i<3).
  4. SchlieรŸlich erhรถhen wir den Wert von โ€žiโ€œ entsprechend.
  5. Hier zeigen wir der Konsole den Wert von โ€žiโ€œ an.

Wenn der obige Code richtig eingegeben und das Programm erfolgreich ausgefรผhrt wird, wird die folgende Ausgabe angezeigt.

Ausgang:

Fรผr Schleife

Hier kรถnnen Sie sehen, dass die Anweisung โ€žforโ€œ dreimal ausgefรผhrt wird. Und jedes Mal wird der aktuelle Wert der Variable โ€žiโ€œ angezeigt.

Hรคufig gestellte Fragen

Die if-Anweisung verarbeitet Bereiche und komplexe boolesche Bedingungen, wรคhrend die switch-Anweisung einen Wert mit mehreren festen Fallbezeichnungen vergleicht. switch ist รผbersichtlicher fรผr viele einzelne Werte, wohingegen if-else fรผr Bereiche, mehrere Variablen und logische Operatoren geeignet ist.

Eine verschachtelte if-Anweisung platziert eine if-Anweisung innerhalb einer anderen, sodass die innere Bedingung nur dann geprรผft wird, wenn die รคuรŸere Bedingung wahr ist. Dadurch kann ein Programm mehrere voneinander abhรคngige Bedingungen prรผfen, allerdings verringert eine tiefe Verschachtelung die Lesbarkeit.

Eine while-Schleife prรผft ihre Bedingung vor jedem Durchlauf und wird daher mรถglicherweise gar nicht ausgefรผhrt. Eine do-while-Schleife prรผft die Bedingung nach dem Schleifenkรถrper und wird daher immer mindestens einmal ausgefรผhrt. Dies eignet sich besonders fรผr Menรผs und die Eingabevalidierung.

Die `break`-Anweisung verlรคsst eine Schleife oder einen `switch`-Block sofort, wรคhrend die `continue`-Anweisung den Rest der aktuellen Iteration รผberspringt und zur nรคchsten รผbergeht. Beide รคndern den Ablauf, aber nur `break` beendet die Schleife vollstรคndig.

Der ternรคre Operator ?: ist eine kompakte Form von if-else. Er wertet eine Bedingung aus und gibt den ersten Wert zurรผck, wenn die Bedingung wahr ist, und den zweiten Wert, wenn sie falsch ist, wodurch eine prรคgnante einzeilige Zuweisung entsteht.

Eine foreach-Schleife durchlรคuft jedes Element einer Sammlung, wie z. B. eines Arrays oder einer Liste, ohne dass ein Index oder Zรคhler benรถtigt wird. Sie liest die Sammlung sicher und verhindert hรคufige Fehler wie โ€žOff-by-oneโ€œ und โ€žOut-of-Rangeโ€œ.

Ja. GitHub Copilot schlรคgt if-, switch-, while- und for-Blรถcke aus einem Kommentar oder Methodennamen in Visual Studio vor. VS Code. RevPrรผfen Sie jeden Vorschlag auf korrekte Bedingungen und Schleifengrenzen, da Copilot Off-by-One-Fehler verursachen kann.

ML.NET-Pipelines verwenden bedingte Anweisungen in C#, um anhand von Merkmalswerten zu verzweigen, und Schleifen, um die Trainingsdatensรคtze zu durchlaufen. Dieselbe if-, switch- und for-Logik bereitet die Daten auf und leitet die Vorhersagen weiter.ping ein stark typisierter Machine-Learning-Workflow.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: