Çok kolay olmasına rağmen yapamıyorum.
Nereyse 1 saattir kafa patlatıyorum ama ne sitelerde ne de kendim bulamadım. Tabii konuyla alakalı tek bulduğum bu fakat buradaki for/if/else ile yapmış benim Switch-case kullanarak yapmam isteniliyor.
Benim de son yaptığım olarak en son böyle bir şey ortaya çıktı.
İlk olarak gidişat yolunda nerede yanlış yapmışım ve nasıl yapabilirim?
char karakter = 'a'; // Harf belirle.
if ((karakter >= 'A' && karakter <= 'Z') || (karakter >= 'a' && karakter <= 'z'))
{
switch (char.ToUpper(karakter))
{
case 'A':
case 'E':
case 'I':
case 'İ':
case 'O':
case 'Ö':
case 'U':
case 'Ü':
Console.WriteLine("Girilen karakter bir sesli harftir.");
break;
default:
Console.WriteLine("Girilen karakter bir sessiz harftir.");
break;
}
}
else
{
Console.WriteLine("Girilen karakter geçersizdir.");
}
Daha dinamik olsun diyorsan bunu.
C#:
public enum HarfTuru
{
Sesli,
Sessiz,
Gecersiz
}
public static HarfTuru HarfTurunuBelirle(char karakter)
{
char buyukHarf = char.ToUpper(karakter);
if (buyukHarf >= 'A' && buyukHarf <= 'Z')
{
if ("AEIOUÜİÖ".Contains(buyukHarf))
{
return HarfTuru.Sesli;
}
else
{
return HarfTuru.Sessiz;
}
}
else
{
return HarfTuru.Gecersiz;
}
}
public static void Main(string[] args)
{
char karakter = 'a'; // Harfi belirle.
HarfTuru harfTuru = HarfTurunuBelirle(karakter);
switch (harfTuru)
{
case HarfTuru.Sesli:
Console.WriteLine("Girilen karakter bir sesli harftir.");
break;
case HarfTuru.Sessiz:
Console.WriteLine("Girilen karakter bir sessiz harftir.");
break;
case HarfTuru.Gecersiz:
Console.WriteLine("Girilen karakter geçersizdir.");
break;
}
}
Çok zorlamışsın. Geçersiz karakter seçimi için when kullansan, sessiz harfler içinde default kullansan çok daha kolay olurdu. Karakter yerine string kullanacaksan char'ı string yapsan yetiyor;
Yada switchten önce bir tane if koyarsın yine aynı şeyi kontrol eden, eğer tetiklenirse fonksiyondan çıkarsın, böylece yine tüm sessiz harfleri yazmak zorunda kalmamış olursun.
Hocam ben arkadaş kodlamaya yeni başlamış o yüzden başlangıç seviyesinde kod yazdım daha iyisi derseniz buyrun aşağıda;
C#:
char karakter = 'A'; // karakterin A olduğunu varsayıp
var sonuc = karakter switch
{
< 'A' or > 'Z' => "Geçersiz karakter.",
'A' or 'E' or 'I' or 'İ' or 'O' or 'Ö' or 'U' or 'Ü' => "Sesli harf",
_ => "Sessiz harf"
};
Console.WriteLine(sonuc);