Suche…


If-Else-Anweisung

Die Programmierung erfordert im Allgemeinen oft eine decision oder eine branch innerhalb des Codes, um zu berücksichtigen, wie der Code unter verschiedenen Eingaben oder Bedingungen arbeitet. In der C # -Programmiersprache (und den meisten Programmiersprachen für diese Angelegenheit) ist der einfachste und manchmal nützlichste Weg, um einen Zweig in Ihrem Programm zu erstellen, die If-Else Anweisung.

Nehmen wir an, wir haben eine Methode (auch als Funktion bezeichnet), die einen int-Parameter annimmt, der eine Punktzahl von bis zu 100 darstellt, und die Methode gibt eine Meldung aus, die besagt, ob wir bestehen oder nicht.

static void PrintPassOrFail(int score)
{
    if (score >= 50) // If score is greater or equal to 50
    {
        Console.WriteLine("Pass!");
    }
    else // If score is not greater or equal to 50
    {
        Console.WriteLine("Fail!");
    }
}

Wenn Sie sich diese Methode ansehen, stellen Sie möglicherweise diese Codezeile ( score >= 50 ) in der If Anweisung fest. Dies kann als eine boolean Bedingung betrachtet werden. Wenn die Bedingung als " true ausgewertet wird, wird der Code ausgeführt, der sich zwischen dem if { } befindet.

Wenn diese Methode beispielsweise wie PrintPassOrFail(60); aufgerufen wurde: PrintPassOrFail(60); , die Ausgabe der Methode wäre ein Konsolendruck mit der Aufschrift Pass! da der Parameterwert von 60 größer oder gleich 50 ist.

Wenn die Methode jedoch wie PrintPassOrFail(30); aufgerufen wurde: PrintPassOrFail(30); Die Ausgabe der Methode würde den Ausdruck " Fail!" ausgeben. . Dies ist darauf zurückzuführen, dass der Wert 30 nicht größer oder gleich 50 ist. Daher wird der Code zwischen else { } anstelle der If Anweisung ausgeführt.

In diesem Beispiel haben wir gesagt, dass die Punktzahl auf 100 steigen sollte, was noch nicht berücksichtigt wurde. Wenn Sie berücksichtigen möchten, dass die Punktzahl nicht über 100 hinausgeht oder möglicherweise unter 0 fällt, lesen Sie das Beispiel der If-Else-If-Else-Anweisung .

If-Else If-Else-Anweisung

Dem Beispiel der If-Else-Anweisung folgend, ist es jetzt an der Zeit, die Else If Anweisung einzuführen. Die Else If Anweisung folgt direkt auf die If Anweisung in der If-Else-If-Else- Struktur, hat jedoch an sich eine ähnliche Syntax wie die If Anweisung. Es wird verwendet, um dem Code mehr Verzweigungen hinzuzufügen, als dies mit einer einfachen If-Else- Anweisung möglich ist.

In dem Beispiel von If-Else Statement wurde angegeben, dass die Punktzahl auf 100 steigt. Es wurden jedoch nie Kontrollen durchgeführt. Um dies zu beheben, können Sie die Methode aus der If-Else-Anweisung folgendermaßen ändern:

static void PrintPassOrFail(int score)
{
    if (score > 100) // If score is greater than 100
    {
        Console.WriteLine("Error: score is greater than 100!");
    }
    else if (score < 0) // Else If score is less than 0
    {
        Console.WriteLine("Error: score is less than 0!");
    }
    else if (score >= 50) // Else if score is greater or equal to 50
    {
        Console.WriteLine("Pass!");
    }
    else // If none above, then score must be between 0 and 49
    {
        Console.WriteLine("Fail!");
    }
}

Alle diese Anweisungen werden der Reihe nach von oben bis unten ausgeführt, bis eine Bedingung erfüllt ist. In diesem neuen Update der Methode haben wir zwei neue Zweige hinzugefügt, um jetzt die außerhalb des Bereichs liegende Punktzahl zu berücksichtigen .

Wenn wir beispielsweise die Methode in unserem Code als PrintPassOFail(110); , die Ausgabe wäre ein Konsolenausdruck, der sagt : Fehler: Score ist größer als 100! ; und wenn wir die Methode in unserem Code PrintPassOrFail(-20); B. PrintPassOrFail(-20); , würde die Ausgabe Error sagen : Score ist kleiner als 0! .

Anweisungen wechseln

Mit einer switch-Anweisung kann eine Variable auf Gleichheit mit einer Liste von Werten getestet werden. Jeder Wert wird als Fall bezeichnet und die einzuschaltende Variable wird für jeden Schaltfall geprüft.

Eine switch Anweisung ist oft prägnanter und verständlicher als die if...else if... else.. -Anweisungen, wenn mehrere mögliche Werte für eine einzelne Variable getestet werden.

Die Syntax lautet wie folgt

switch(expression) {
   case constant-expression:
      statement(s);
      break;
   case constant-expression:
      statement(s);
      break;
  
   // you can have any number of case statements
   default : // Optional
      statement(s);
      break;
}

Es gibt einige Dinge, die bei der Verwendung der switch-Anweisung zu beachten sind

  • Der in einer switch-Anweisung verwendete Ausdruck muss einen Integral- oder Aufzählungstyp haben oder von einem Klassentyp sein, in dem die Klasse eine einzige Konvertierungsfunktion in einen Integral- oder Aufzählungstyp hat.
  • Sie können eine beliebige Anzahl von case-Anweisungen in einem Switch verwenden. Auf jeden Fall folgt der zu vergleichende Wert und ein Doppelpunkt. Die zu vergleichenden Werte müssen innerhalb jeder switch-Anweisung eindeutig sein.
  • Eine switch-Anweisung kann einen optionalen Standardfall haben. Der Standardfall kann zum Ausführen einer Aufgabe verwendet werden, wenn keiner der Fälle wahr ist.
  • Jeder Fall muss mit einer break Anweisung enden, es sei denn, es handelt sich um eine leere Anweisung. In diesem Fall wird die Ausführung im darunter liegenden Fall fortgesetzt. Die break-Anweisung kann auch weggelassen werden, wenn eine return , throw oder goto case Anweisung verwendet wird.

Beispiel kann bei den Noten angegeben werden

char grade = 'B';

switch (grade)
{
    case 'A':
        Console.WriteLine("Excellent!");
        break;
    case 'B':
    case 'C':
        Console.WriteLine("Well done");
        break;
    case 'D':
        Console.WriteLine("You passed");
        break;
    case 'F':
        Console.WriteLine("Better try again");
        break;
    default:
        Console.WriteLine("Invalid grade");
        break;
}

If-Anweisungsbedingungen sind boolesche Standardausdrücke und -werte

Die folgende Aussage

if (conditionA && conditionB && conditionC) //...

ist genau äquivalent zu

bool conditions = conditionA && conditionB && conditionC;
if (conditions) // ...

Mit anderen Worten, die Bedingungen in der "if" -Anweisung bilden lediglich einen normalen booleschen Ausdruck.

Ein häufiger Fehler beim Schreiben von Bedingungsanweisungen ist der explizite Vergleich mit true und false :

if (conditionA == true && conditionB == false && conditionC == true) // ...

Dies kann als neu geschrieben werden

if (conditionA && !conditionB && conditionC)


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow