Menu
Coddy logo textTech

If vs. Switch Comparison

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

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

If-else ifadeleri esnektir ve herhangi bir 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");
}

Switch ifadeleri, tek bir değişkeni birden fazla sabit değere karşı karşılaştırırken 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, case etiketlerini üst üste yığarak aynı sonuca sahip birden fazla case'i gruplayabilir — buna fall-through denir. Birkaç case arasında kod olmadığında, hepsi aynı bloğu çalıştırır:

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

Burada, 'S' ve 'U' ikisi de aynı Console.WriteLine("Weekend") çağrısına fall through yapar. Boş case etiketlerini bu şekilde üst üste yığmak, C#'ta case'leri gruplamanın standart yoludur.

challenge icon

Görev

Orta

convertGradeToPoints adında bir metot oluşturun ki:

  1. Bir harf notunu string parametre olarak 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. Metot her iki yaklaşımı da uygulamalı ve switch uygulamasının sonucunu döndürmelidir
  4. Bu not dönüştürmelerini kullanın:
    • "A" veya "a" = 4
    • "B" veya "b" = 3
    • "C" veya "c" = 2
    • "D" veya "d" = 1
    • "F" veya "f" = 0
    • Herhangi başka bir giriş = -1

Kopya kağıdı

C#, birden fazla koşulu işlemek için iki temel yol sağlar: if-else ifadeleri ve switch ifadeleri.

If-else ifadeleri esnektir ve herhangi bir tür koşulu işleyebilir:

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 ifadeleri, tek bir değişkeni birden fazla sabit değerle karşılaştırırken 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 ifadeleri, case etiketlerini yığarak aynı sonucu paylaşmak üzere birden fazla case'i gruplandırabilir (fall-through):

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

Kendin dene

public class ConvertGradeToPoints
{
    // convertGradeToPoints metodunu uygulayın
    public static int convertGradeToPoints(string letterGrade)
    {
        // Buraya kodunuzu 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