Menu
Coddy logo textTech

If vs. Switch Comparison

Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy — Lektion 10 von 66.

C# bietet zwei primäre Möglichkeiten, mehrere Bedingungen zu handhaben: if-else-Anweisungen und switch-Anweisungen. Jede hat ihre Stärken in unterschiedlichen Szenarien.

If-else-Anweisungen sind flexibel und können Bedingungen jeder Art behandeln:

string grade = "B";

if (grade == "A")
{
    Console.WriteLine("Excellent");
}
else if (grade == "B")
{
    Console.WriteLine("Good");
}
else if (grade == "C")
{
    Console.WriteLine("Satisfactory");
}
else
{
    Console.WriteLine("Needs improvement");
}

Switch-Anweisungen sind übersichtlicher, wenn eine einzelne Variable gegen mehrere konstante Werte verglichen wird:

string grade = "B";

switch (grade)
{
    case "A":
        Console.WriteLine("Excellent");
        break;
    case "B":
        Console.WriteLine("Good");
        break;
    case "C":
        Console.WriteLine("Satisfactory");
        break;
    default:
        Console.WriteLine("Needs improvement");
        break;
}

Der Switch kann mehrere Fälle gruppieren, die dasselbe Ergebnis haben, indem Case-Labels gestapelt werden — dies wird fall-through genannt. Wenn mehrere Fälle keinen Code dazwischen haben, führen sie alle denselben Block aus:

char dayCode = 'S';

switch (dayCode)
{
    case 'M':
    case 'T':
    case 'W':
    case 'R':
    case 'F':
        Console.WriteLine("Weekday");
        break;
    case 'S':
    case 'U':
        Console.WriteLine("Weekend");
        break;
    default:
        Console.WriteLine("Unknown day");
        break;
}

Hier fallen 'S' und 'U' beide durch zum gleichen Console.WriteLine("Weekend")-Aufruf. Das Stapeln leerer Case-Labels wie dies ist der Standardweg, um Fälle in C# zu gruppieren.

challenge icon

Aufgabe

Mittel

Erstellen Sie eine Methode namens convertGradeToPoints, die:

  1. Eine Buchstaben-Note als String-Parameter entgegennimmt
  2. Sie zu einem numerischen Notenpunkt unter Verwendung beider switch- und if-else-Ansätze konvertiert
  3. Die Methode sollte beide Ansätze implementieren und das Ergebnis der switch-Implementierung zurückgeben
  4. Verwenden Sie diese Notenkonvertierungen:
    • "A" oder "a" = 4
    • "B" oder "b" = 3
    • "C" oder "c" = 2
    • "D" oder "d" = 1
    • "F" oder "f" = 0
    • Jede andere Eingabe = -1

Spickzettel

C# bietet zwei primäre Wege, um mehrere Bedingungen zu handhaben: if-else-Anweisungen und switch-Anweisungen.

If-else-Anweisungen sind flexibel und können jede Art von Bedingung handhaben:

string grade = "B";

if (grade == "A")
{
    Console.WriteLine("Excellent");
}
else if (grade == "B")
{
    Console.WriteLine("Good");
}
else if (grade == "C")
{
    Console.WriteLine("Satisfactory");
}
else
{
    Console.WriteLine("Needs improvement");
}

Switch-Anweisungen sind sauberer, wenn eine einzelne Variable gegen mehrere konstante Werte verglichen wird:

string grade = "B";

switch (grade)
{
    case "A":
        Console.WriteLine("Excellent");
        break;
    case "B":
        Console.WriteLine("Good");
        break;
    case "C":
        Console.WriteLine("Satisfactory");
        break;
    default:
        Console.WriteLine("Needs improvement");
        break;
}

Switch-Anweisungen können mehrere Fälle gruppieren (fall-through), um dasselbe Ergebnis zu teilen, indem case-Labels gestapelt werden:

char dayCode = 'S';

switch (dayCode)
{
    case 'M':
    case 'T':
    case 'W':
    case 'F':
        Console.WriteLine("Weekday");
        break;
    case 'S':
    case 'U':
        Console.WriteLine("Weekend");
        break;
    default:
        Console.WriteLine("Unknown day");
        break;
}

Probier es selbst

public class ConvertGradeToPoints
{
    // Implementieren Sie die convertGradeToPoints-Methode
    public static int convertGradeToPoints(string letterGrade)
    {
        // Schreiben Sie Ihren Code hier
        
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf