Menu
Coddy logo textTech

If ve Switch Karşılaştırması

Coddy'nin C# Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 10 / 66.

C#, birden fazla koşulu ele almak için iki temel yol sunar: if-else ifadeleri ve switch ifadeleri. Her birinin farklı senaryolarda kendine özgü güçlü yönleri vardır.

If-else ifadeleri esnektir ve her tür koşulu ele alabilir:

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");
}

Tek bir değişkeni birden fazla sabit değerle karşılaştırırken switch ifadeleri daha temizdir:

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, birden fazla case'i birlikte gruplayabilir (fall-through); böylece aynı sonucu paylaşırlar. case etiketlerini aralarında kod olmayacak şekilde art arda yazın ve sonda yalnızca bir break kullanın:

string grade = "B";

switch (grade)
{
    case "A":
    case "a":
        Console.WriteLine("Excellent - 4 points");
        break;
    case "B":
    case "b":
        Console.WriteLine("Good - 3 points");
        break;
    case "C":
    case "c":
        Console.WriteLine("Satisfactory - 2 points");
        break;
    default:
        Console.WriteLine("Needs improvement");
        break;
}

Burada hem "B" hem de "b" aynı bloğa geçer ve "Good - 3 points" yazdırır. Bu desen, büyük ve küçük harfli girdilerin veya herhangi bir değer kümesinin aynı sonucu üretmesini istediğin her durumda kullanışlıdır.

Switch, aynı sonucu paylaşan farklı etiketlere sahip durumları da gruplayabilir:

char dayCode = 'M';

switch (dayCode)
{
    case 'M':
        Console.WriteLine("Monday");
        break;
    case 'T':
        Console.WriteLine("Tuesday or Thursday");
        break;
    case 'W':
        Console.WriteLine("Wednesday");
        break;
    case 'F':
        Console.WriteLine("Friday");
        break;
    default:
        Console.WriteLine("Unknown day");
        break;
}
challenge icon

Görev

Orta

convertGradeToPoints adlı bir yöntem oluşturun. Bu yöntem:

  1. Bir dize parametresi olarak harf notu alır
  2. Hem switch hem de if-else yaklaşımlarını kullanarak bunu sayısal not puanına dönüştürür
  3. Yöntem her iki yaklaşımı da uygulamalı ve switch uygulamasının sonucunu döndürmelidir
  4. Şu not dönüşümlerini kullanın:
    • "A" veya "a" = 4
    • "B" veya "b" = 3
    • "C" veya "c" = 2
    • "D" veya "d" = 1
    • "F" veya "f" = 0
    • Diğer tüm girdiler = -1

Kendin dene

public class ConvertGradeToPoints
{
    // convertGradeToPoints metodunu uygulayın
    public static int convertGradeToPoints(string letterGrade)
    {
        // Kodunuzu buraya yazın
        
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online C# derleyicisi