5.00 / 1 oy

Java'da string ile switch kullanmak

Java'da switch içerisinde string kullanılmıyormuş ama neden kullanılamadığı konusunda teknik bir açıklama da bulamadım. Gelecek versiyonlarda java'ya eklenecek bir özellik mi bu yoksa bir şeylerin mantığına aykırı olduğu için mi switch içerisinde string değişken kullanılamıyor?

RainingCodes

01.08.2019 09:33

Bu soru 3 kez yanıtlandı.

  • 2 Ağustos 2019 00:28
    18

    switch ifadeleri içerisinde String değişkenlerin kullanılmaması, performans anlamında çok verimsiz olmalarından kaynaklanıyordu. Tıpkı C ve C++ dillerinde olduğu gibi Java'da da en başından beri bu sebeple switch içerisinde string case'leri açılmasına izin verilmedi. switch ifadelerinin (eğer int veri tipinde değilse) iç içe if ifadeleri olarak compile edilmesi zorunluluğu, bu performans kaybının temel sebebiydi. C'den türeyen bir diğer dil olan C# ise bu performans kaybını önemsiz görerek kullanıcılarını daha özgür bırakmalarının daha doğru bir seçin olduğu değerlendirmesi yaparak C#'ta switch içerisinde string kullanmalarına izin veriyorlardı.

    Ancak Java'da switch ifadesi içerisinde String değişkenler artık Java JDK 7'den beri kullanılabiliyor.

    Örnek:

    String ay = "ocak";  
       
     switch (ay) {  
     case "ocak":  
       System.out.println("yılın ilk ayı");  
       break;  
    case "mart":  
      System.out.println("kedileri pistten alalım");  
       break;  
     default:  
         System.out.println("bari aralık olsa");  
     }  

     

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
Java'da string ile switch kullanmak

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.