if-else (C#-Referenz)

Aktualisiert: November 2007

Die if-Anweisung wählt eine Anweisung für die Ausführung anhand des Werts eines Boolean-Ausdrucks aus. Im folgenden Beispiel wird ein Boolean-Flag flagCheck auf true festgelegt und anschließend in der if-Anweisung geprüft. Die Ausgabe lautet The flag is set to true.

bool result = true;

if (result == true)
{
    Console.WriteLine("The variable is set to true.");
}
else
{
    Console.WriteLine("The variable is set to false.");
}

Wenn die Auswertung des Ausdrucks zwischen den Klammern true ergibt, wird die Console.WriteLine("The boolean flag is set to true."); -Anweisung ausgeführt. Nachdem die if-Anweisung ausgeführt wurde, wird die Steuerung an die nächste Anweisung übergeben. Der else-Zweig wird in diesem Beispiel nicht ausgeführt.

Soll mehr als eine Anweisung ausgeführt werden, können mehrere Anweisungen bedingt ausgeführt werden, indem sie, wie im obigen Beispiel, mithilfe von {} zu einem Block zusammengefasst werden.

Anweisungen, die nach dem Prüfen der Bedingung ausgeführt werden sollen, können beliebiger Art sein. Dies schließt auch eine weitere if-Anweisung ein, die in der ursprünglichen if-Anweisung geschachtelt ist. In geschachtelten if-Anweisungen gehört die else-Klausel zum letzten if, für das kein entsprechendes else vorhanden ist. Beispiel:

int x = 12;
int y = 18;

if (x > 10)
    if (y > 20)
        Console.Write("Statement_1");
    else
        Console.Write("Statement_2");

In diesem Beispiel wird Statement_2 angezeigt, wenn die Bedingung (y > 20) den Wert false ergibt. Wenn Sie jedoch Statement_2 mit der Bedingung (x >10) verknüpfen möchten, verwenden Sie Klammern:

if (x > 10)
{
    if (y > 20)
        Console.Write("Statement_1");
}
else
    Console.Write("Statement_2");

In diesem Fall wird Statement_2 angezeigt, wenn die Bedingung (x > 10) den Wert false ergibt.

Beispiel

In diesem Beispiel wird ein Zeichen über die Tastatur eingegeben, und das Programm überprüft, ob es sich bei diesem Zeichen um einen Buchstaben handelt. Falls ja, wird überprüft, ob der Buchstabe in Groß- oder Kleinschreibung eingegeben wurde. In beiden Fällen wird die richtige Meldung angezeigt.

class IfTest
{
    static void Main()
    {
        Console.Write("Enter a character: ");
        char c = (char)Console.Read();
        if (Char.IsLetter(c))
        {
            if (Char.IsLower(c))
            {
                Console.WriteLine("The character is lowercase.");
            }
            else
            {
                Console.WriteLine("The character is uppercase.");
            }
        }
        else
        {
            Console.WriteLine("Not an alphabetic character.");
        }
    }

    /*
    Input:
    2
    Sample Output
    Enter a character: 2
    The character is not an alphabetic character.
    Additional sample might look as follows:
    Run #2:
    Enter a character: A
    The character is uppercase.
    Run #3:
    Enter a character: h
    The character is lowercase.
     * */
}

Die if-Anweisung kann auch erweitert werden, um mehrere Bedingungen zu behandeln. Dazu kann die folgende else-if-Anordnung verwendet werden:

if (Condition_1)
{
    // Statement_1;
}
else if (Condition_2)
{
    // Statement_2;
}
else if (Condition_3)
{
    // Statement_3;
}
else
{
    // Statement_n;
}

In diesem Beispiel wird überprüft, ob es sich bei einem eingegebenen Zeichen um einen Großbuchstaben, einen Kleinbuchstaben oder eine Zahl handelt. Andernfalls stellt es kein alphanumerisches Zeichen dar. In dem Programm wird die else-if-"Leiter" verwendet.

    public class IfTest3
{
    static void Main()
    {
        Console.Write("Enter a character: ");
        char c = (char)Console.Read();

        if (Char.IsUpper(c))
        {
            Console.WriteLine("Character is uppercase.");
        }
        else if (Char.IsLower(c))
        {
            Console.WriteLine("Character is lowercase.");
        }
        else if (Char.IsDigit(c))
        {
            Console.WriteLine("Character is a number.");
        }
        else
        {
            Console.WriteLine("Character is not alphanumeric.");
        }
    }
}
    /*
        Sample Input:  E

        Sample Output:
        Enter a character: E
        The character is uppercase.

        Additional sample runs might look as follows:
        Run #2
        Enter a character: e
        The character is lowercase.
        Run #3:
        Enter a character: 4
        The character is a number.
        Run #4:
        Enter a character: $
        The character is not alphanumeric.
    */

C#-Programmiersprachenspezifikation

Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:

  • 5.3.3.5 If-Anweisungen

  • 8.7.1 Die if-Anweisung

Siehe auch

Konzepte

C#-Programmierhandbuch

Referenz

C#-Schlüsselwörter

Operator ?: (C#-Referenz)

The if-else Statement

switch (C#-Referenz)

Weitere Ressourcen

C#-Referenz