Share via


Entscheidungen und Verzweigungen (Visual C# Express)

Aktualisiert: November 2007

Das Ändern der Ablaufsteuerung in einem Programm als Reaktion auf eine Eingabe oder ein Rechenergebnis ist ein wesentlicher Teil einer Programmiersprache. In C# gibt es die Möglichkeit, die Ablaufsteuerung entweder nicht bedingt zu ändern (durch Springen zu einer anderen Stelle im Code) oder bedingt (durch Prüfen einer Bedingung).

Hinweise

Die einfachste Form der bedingten Verzweigung ist die Verwendung des if-Konstrukts. Mit dem if-Konstrukt können Sie eine else-Klausel verwenden, und if-Konstrukte können ineinander geschachtelt werden.

using System;

class Program
{
    static void Main()
    {
        int x = 1;
        int y = 1;


        if (x == 1)
            Console.WriteLine("x == 1");
        else
            Console.WriteLine("x != 1");


        if (x == 1)
        {
            if (y == 2)
            {
                Console.WriteLine("x == 1 and y == 2");
            }
            else
            {
                Console.WriteLine("x == 1 and y != 2");
            }
        }                
    }
}
Hinweis:

Anders als bei C und C++ erfordern if -Anweisungen boolesche Werte. Beispielsweise sind Anweisungen nicht zulässig, deren Auswertung nicht einfach True oder False ergibt, sondern z. B. (a=10). In C# kann False nicht durch 0 und True nicht durch 1 (oder einen anderen Wert) ersetzt werden.

Bei den Anweisungen hinter dem if-Schlüsselwort und dem else-Schlüsselwort kann es sich wie in der ersten if-else-Anweisung im vorherigen Codebeispiel um eine einzelne Codezeile oder wie in der zweiten if-else-Anweisung um einen Anweisungsblock in geschweiften Klammern handeln. Es ist möglich, if-else-Anweisungen zu schachteln. In der Regel gilt es jedoch als besserer Programmierstil, stattdessen eine switch-Anweisung zu verwenden.

Eine switch-Anweisung kann je nach Wert eines bestimmten Ausdrucks mehrere Aktionen ausführen. Der Code zwischen der case-Anweisung und dem break-Schlüsselwort wird ausgeführt, wenn die Bedingung erfüllt ist. Wenn die Ablaufsteuerung zu einer weiteren case-Anweisung fortfahren soll, verwenden Sie das goto-Schlüsselwort.

using System;

class Program
{
    static void Main()
    {
        int x = 3;

        switch (x)
        {
            case 1: 
                Console.WriteLine("x is equal to 1");
                break;

            case 2:
                Console.WriteLine("x is equal to 2");
                break;

            case 3:
                goto default;

            default:
                Console.WriteLine("x is equal to neither 1 nor 2");
                break;
        }
    }
}

Der Ausdruck, den die switch-Anweisung verwendet, um den auszuführenden Fall zu bestimmen, darf nur aus Integrierte Datentypen (Visual C# Express) wie int oder string bestehen. Komplexere benutzerdefinierte Typen sind nicht zulässig.

Im Gegensatz zu Visual Basic muss die Bedingung in C# ein konstanter Wert sein. Es ist zum Beispiel nicht zulässig, den Ausdruck mit einem Wertebereich zu vergleichen.

Siehe auch

Konzepte

Einführung in C#

Referenz

Auswahlanweisungen (C#-Referenz)

Sprunganweisungen (C#-Referenz)