C# Switch-case ile sesli ve sessiz harfi ekrana yazdırma

DarL

Femtopat
Katılım
28 Haziran 2023
Mesajlar
96
Daha fazla  
Cinsiyet
Erkek
Bilişim okuyorum ve ödev verildi.



Ç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?
 
Kod:
using System;

class Program
{
    static void Main()
    {
        Console.Write("Harf Giriniz: ");
        char karakter = Console.ReadLine().ToLower()[0];

        switch (karakter)
        {
            case 'a':
            case 'e':
            case 'ı':
            case 'i':
            case 'o':
            case 'ö':
            case 'u':
            case 'ü':
                Console.WriteLine("Sesli harf.");
                break;
            default:
                Console.WriteLine("Sessiz harf.");
                break;
        }
    }
}

Buyrun.
 
Harfi'i int'e ceviremezsiniz. Stringe cevirin oncelikle.

Hocam hocalarin verdigi odeve gore daha cok yeni bunlarla anlasilmaz bizde ayni uygulamayi yapmistik cunku.
 
C#:
 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string secilenHarf = comboBox1.SelectedItem.ToString().ToUpper();

            switch (secilenHarf)
            {
                case "A":
                case "E":
                case "I":
                case "İ":
                case "O":
                case "Ö":
                case "U":
                case "Ü":
                    MessageBox.Show("Seçilen harf sesli bir harftir.");
                    break;
                case "B":
                case "C":
                case "D":
                case "F":
                case "G":
                case "Ğ":
                case "H":
                case "J":
                case "K":
                case "L":
                case "M":
                case "N":
                case "P":
                case "R":
                case "S":
                case "Ş":
                case "T":
                case "V":
                case "Y":
                case "Z":
                    MessageBox.Show("Seçilen harf sessiz bir harftir.");
                    break;
                default:
                    MessageBox.Show("Geçersiz harf seçildi.");
                    break;
            }
        }

ComboBox'ın SelectedIndexChanged eventine verdiğim örnek kodu uygulayın hocam. Ancak ComboBox'ın isminin ComboBox1 değil ise kodu ona göre değiştirin. Ve ComboBox içeriğine de tüm alfabedeki harfleri girin.
 
Çok teşekkür ederim , sağolun.
 
Ç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;
C#:
switch(karakter)
{
    case char ch when (ch < 'A' || ch > 'Z'):
        Console.WriteLine("Geçersiz karakter.");
        break;
    case char ch when (ch == 'A' || ch == 'E'
    || ch == 'I' || ch == 'İ'
    || ch == 'O' || ch == 'Ö'
    || ch == 'U' || ch == 'Ü'):
        Console.WriteLine("Sesli harf");
        break;
    default:
        Console.WriteLine("Sessiz harf");
        break;

}

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.
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…