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;
}Görev
OrtaconvertGradeToPoints adlı bir yöntem oluşturun. Bu yöntem:
- Bir dize parametresi olarak harf notu alır
- Hem switch hem de if-else yaklaşımlarını kullanarak bunu sayısal not puanına dönüştürür
- Yöntem her iki yaklaşımı da uygulamalı ve switch uygulamasının sonucunu döndürmelidir
- Ş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
}
}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
1Çok Boyutlu Diziler
2B Dizilere Giriş2B Tanımlama ve Başlatma2B Dizi Öğelerine Erişim2B Dizilerle İç İçe DöngülerDüzensiz DizilerYaygın Matris İşlemleriTekrar - Çok Boyutlu4Akış Denetimi Teknikleri
Erken DönüşlerKoruma KoşullarıAtlama İfadeleri (goto)Break ve Continueİç İçe Koşulları Düzleştirme7İleri Düzey Mantıksal Operatörler
Kısa Devre DeğerlendirmesiKoşullu Mantıksal OperatörlerOperatör ÖnceliğiÖzet - İleri Düzey Operatörler2İleri Düzey Karar Verme
Birden Çok KoşulKarmaşık Boolean MantığıIf ve Switch Karşılaştırmasıİç İçe Switch İfadeleriÖzet - İleri Düzey Kararlar5İstisna Yönetimi
Try-Catch Temelleriİstisna TürleriBirden Çok Catch BloğuDosyalarla ÇalışmaFinally BloğuUsing ve Try-Finally KarşılaştırmasıÖzel İstisnalarTekrar - Hata Yönetimi3Döngü İyileştirmeleri
Döngü PerformansıKarmaşık Yapılar Üzerinde İterasyonHer Döngü TürüDöngüleri Yeniden DüzenlemeÖzet - Optimize Edilmiş Döngüler6Null Yönetimi
Null Referanslarının TemelleriNullable Değer TürleriNull Kontrolü DesenleriSavunmacı ProgramlamaTekrar - Null GüvenliğiKendi başına pratik yap: Online C# derleyicisi