if-else (C#-Referenz)if-else (C# Reference)

Eine if -Anweisung ermittelt, welche Anweisung basierend auf dem Wert eines Boolean Ausdrucks auszuführen ist.An if statement identifies which statement to run based on the value of a Boolean expression. Im folgenden Beispiel wird die Boolean Variable result auf true festgelegt und dann in der if Anweisung überprüft.In the following example, the Boolean variable result is set to true and then checked in the if statement. Die Ausgabe lautet The condition is true.The output is The condition is true.

bool condition = true;

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

Die können die Beispiele in diesem Thema ausführen, indem Sie sie in die Main -Methode einer Konsolenanwendung platzieren.You can run the examples in this topic by placing them in the Main method of a console app.

Eine if -Anweisung in C# kann zwei Formen annehmen, wie im folgenden Beispiel gezeigt.An if statement in C# can take two forms, as the following example shows.

// if-else statement  
if (condition)  
{  
    then-statement;  
}  
else  
{  
    else-statement;  
}  
// Next statement in the program.  

// if statement without an else  
if (condition)  
{  
    then-statement;  
}  
// Next statement in the program.  

In einer if-else -Anweisung wird, wenn condition zu true ausgewertet wird, then-statement ausgeführt.In an if-else statement, if condition evaluates to true, the then-statement runs. Wenn condition false ist, wird else-statement ausgeführt.If condition is false, the else-statement runs. Da condition nicht gleichzeitig true und false sein kann, können then-statement und else-statement einer if-else -Anweisung niemals beide ausgeführt werden.Because condition can’t be simultaneously true and false, the then-statement and the else-statement of an if-else statement can never both run. Nachdem then-statement oder else-statement ausgeführt wurde, wird die Steuerung an die if -Anweisung übergeben.After the then-statement or the else-statement runs, control is transferred to the next statement after the if statement.

In einer if -Anweisung, die keine else -Anweisung enthält, wird, wenn condition true ist, then-statement ausgeführt.In an if statement that doesn’t include an else statement, if condition is true, the then-statement runs. Wenn condition false ist, wird die Steuerung an die nächste Anweisung nach der if Anweisung übergeben.If condition is false, control is transferred to the next statement after the if statement.

Sowohl then-statement als auch else-statement können aus einer einzelnen Anweisung oder mehreren in Klammern eingeschlossenen Anweisungen bestehen ({}).Both the then-statement and the else-statement can consist of a single statement or multiple statements that are enclosed in braces ({}). Bei einer Anweisung sind die Klammern optional, sie werden aber empfohlen.For a single statement, the braces are optional but recommended.

Die Anweisung bzw. die Anweisungen in then-statement und else-statement können von einer beliebigen Art sein und eine weitere if Anweisung enthalten, die in der ursprünglichen if -Anweisung geschachtelt ist.The statement or statements in the then-statement and the else-statement can be of any kind, including another if statement nested inside the original if statement. In geschachtelten if Anweisungen gehört jede else -Klausel zur letzten if -Anweisung, die nicht über eine zugehörige else-Anweisung verfügt.In nested if statements, each else clause belongs to the last if that doesn’t have a corresponding else. Im folgenden Beispiel wird Result1 angezeigt, wenn m > 10 und n > 20 zu true ausgewertet werden.In the following example, Result1 appears if both m > 10 and n > 20 evaluate to true. Wenn m > 10 true ist, n > 20 hingegen false, wird Result2 angezeigt.If m > 10 is true but n > 20 is false, Result2 appears.

// Try with m = 12 and then with m = 8.
int m = 12;
int n = 18;

if (m > 10)
    if (n > 20)
    {
        Console.WriteLine("Result1");
    }
    else
    {
        Console.WriteLine("Result2");
    }

Wenn stattdessen Result2 angezeigt werden soll, wenn (m > 10) false ist, können Sie diese Zuordnung mithilfe von Klammern festlegen, um den Beginn und das Ende der geschachtelten if Anweisung anzugeben, wie im folgenden Beispiel gezeigt.If, instead, you want Result2 to appear when (m > 10) is false, you can specify that association by using braces to establish the start and end of the nested if statement, as the following example shows.

// Try with m = 12 and then with m = 8.
if (m > 10)
{
    if (n > 20)
        Console.WriteLine("Result1");
}
else
{
    Console.WriteLine("Result2");
}

Result2 wird angezeigt, wenn die Bedingung (m > 10) als FALSE ausgewertet wird.Result2 appears if the condition (m > 10) evaluates to false.

BeispielExample

Im folgenden Beispiel geben Sie ein Zeichen über die Tastatur ein. Das Programm verwendet eine geschachtelte if -Anweisung, um zu bestimmen, ob das eingegebene Zeichen ein alphabetisches Zeichen ist.In the following example, you enter a character from the keyboard, and the program uses a nested if statement to determine whether the input character is an alphabetic character. Wenn das eingegebene Zeichen ein alphabetisches Zeichen ist, überprüft das Programm, ob das eingegebene Zeichen in Groß- oder in Kleinschreibung ist.If the input character is an alphabetic character, the program checks whether the input character is lowercase or uppercase. In beiden Fällen wird eine Meldung angezeigt.A message appears for each case.

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("The character isn't an alphabetic character.");
}

//Sample Output:

//Enter a character: 2
//The character isn't an alphabetic character.

//Enter a character: A
//The character is uppercase.

//Enter a character: h
//The character is lowercase.

BeispielExample

Sie können eine if Anweisung auch in einem else-Block schachteln, wie der folgende Codeausschnitt zeigt.You also can nest an if statement inside an else block, as the following partial code shows. Im Beispiel werden if Anweisungen in zwei else-Blocks und einem then-Block geschachtelt.The example nests if statements inside two else blocks and one then block. In den Kommentaren ist angegeben, welche Bedingungen in jedem Block true oder false sind.The comments specify which conditions are true or false in each block.

// Change the values of these variables to test the results.
bool Condition1 = true;
bool Condition2 = true;
bool Condition3 = true;
bool Condition4 = true;

if (Condition1)
{
    // Condition1 is true.
}
else if (Condition2)
{
    // Condition1 is false and Condition2 is true.
}
else if (Condition3)
{
    if (Condition4)
    {
        // Condition1 and Condition2 are false. Condition3 and Condition4 are true.
    }
    else
    {
        // Condition1, Condition2, and Condition4 are false. Condition3 is true.
    }
}
else
{
    // Condition1, Condition2, and Condition3 are false.
}

BeispielExample

Im folgenden Beispiel wird bestimmt, ob ein eingegebenes Zeichen ein Kleinbuchstabe, ein Großbuchstabe oder eine Zahl ist.The following example determines whether an input character is a lowercase letter, an uppercase letter, or a number. Wenn alle drei Bedingungen false sind, ist das Zeichen kein alphanumerisches Zeichen.If all three conditions are false, the character isn’t an alphanumeric character. Das Beispiel zeigt für jeden Fall eine Meldung an.The example displays a message for each case.

Console.Write("Enter a character: ");
char ch = (char)Console.Read();

if (Char.IsUpper(ch))
{
    Console.WriteLine("The character is an uppercase letter.");
}
else if (Char.IsLower(ch))
{
    Console.WriteLine("The character is a lowercase letter.");
}
else if (Char.IsDigit(ch))
{
    Console.WriteLine("The character is a number.");
}
else
{
    Console.WriteLine("The character is not alphanumeric.");
}

//Sample Input and Output:
//Enter a character: E
//The character is an uppercase letter.

//Enter a character: e
//The character is a lowercase letter.

//Enter a character: 4
//The character is a number.

//Enter a character: =
//The character is not alphanumeric.

So, wie eine Anweisung im else-Block oder then-Block jede beliebige Anweisung sein kann, können Sie für die Bedingungen einen beliebigen gültigen booleschen Ausdruck verwenden.Just as a statement in the else block or the then block can be any valid statement, you can use any valid Boolean expression for the condition. Sie können logische Operatoren wie z.B &&, &, ||, | und ! verwendenYou can use logical operators such as &&, &, ||, | and ! verwenden, um Verbundbedingungen zu erstellen.to make compound conditions. Der folgende Code enthält Beispiele.The following code shows examples.

// NOT  
bool result = true;  
if (!result)  
{  
    Console.WriteLine("The condition is true (result is false).");  
}  
else  
{  
    Console.WriteLine("The condition is false (result is true).");  
}  

// Short-circuit AND  
int m = 9;  
int n = 7;  
int p = 5;  
if (m >= n && m >= p)  
{  
    Console.WriteLine("Nothing is larger than m.");  
}  

// AND and NOT  
if (m >= n && !(p > m))  
{  
    Console.WriteLine("Nothing is larger than m.");  
}  

// Short-circuit OR  
if (m > n || m > p)  
{  
    Console.WriteLine("m isn't the smallest.");  
}  

// NOT and OR  
m = 4;  
if (!(m >= n || m >= p))  
{  
    Console.WriteLine("Now m is the smallest.");  
}  
// Output:  
// The condition is false (result is true).  
// Nothing is larger than m.  
// Nothing is larger than m.  
// m isn't the smallest.  
// Now m is the smallest.  

C#-ProgrammiersprachenspezifikationC# Language Specification

Weitere Informationen erhalten Sie unter C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Siehe auchSee Also

C#-ReferenzC# Reference
C#-ProgrammierhandbuchC# Programming Guide
C#-SchlüsselwörterC# Keywords
?:-Operator?: Operator
if-else-Anweisung (C++)if-else Statement (C++)
switchswitch