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

  • Konuyu başlatan DarL
  • Başlangıç Tarihi
  • Mesaj 11
  • Görüntüleme 2.281

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.…