Akış Kontrolü — Notlarım(Switch-Case)
Switch-Case
Akış Kontrolü — Notlarım(Switch-Case)
Switch-Case
switch-case, if-else yapılarına benzerdir fakat farkı switch’in byte,short,char,int, wrapper classlar veya String tipinden tekil değerler alan ifadeler için daha toplu bir yapı sunmasıdır.
En basit şekliyle switch ifadesi, bir değişkenin değerini birden fazla durum değeriyle karşılaştırır ve eşleşen ilk durumla ilişkili kod bloğunu çalıştırır.
case’den sonra gelen değerler sabite(literal) ya da sabit değişken(constant variable) olmalıdır.
switch’ e içindeki int ya da String ifade, hangi case sabitesine eşitse onun ifadeleri, break’e kadar çalıştırılır.
switch(expression) {
case x:
statements
break;
case y:
statements
break;
default:
statements
}
Eğer hiç birine eşit değilse default’tan sonrası break’a kadar çalıştırılır.
Switch ifadesi bir kez değerlendirilir.
En fazla bir tane olabilen ve kullanımı zorunlu olmayan default herhangi bir değer almaz.
Hiç case ifadesi olmadığı durumda da default’u kullanılabiliriz.
case ve default ifadelerinin sırası önemli değildir.
Sabit değişken tanımlamak için final kullanılmalıdır.
Final değişken ile sabit değişken aynı şeyler değildi yani değişken final olsa bile değeri metot çağrısıyla belirleniyorsa, metot çağrısının sonucu çalışma zamanında belirlenir ve sabite değişken olamaz.
Hiç bir iki case’in sabite değeri aynı olmamalıdır ve derleyici bunu sağlamaya çalışır.
Java 12 ile birlikte switch-case ifadeleri gelmiş, tek bir değer döndürecek şekilde switch-case kullanımı mümkün olmuştur.
Ayrıca bu yeni yapıda -> ile eski yapıdaki break ihtiyacı ve case’lerde, break görünceye kadar tüm cümlelerin çalıştırılması problemi de ortadan kaldırılmıştır.
Bu yeni yapıda her case cümlesi, switch-case’in döndürdüğü tipe uygun tipte değerler geri döndürmelidir.
Ayrıca artık switch-case bir cümle olmaktan çıkıp ifade olduğu için, bu durumda bloğun sonunda ; kullanılmalıdır.
case’den sonra virgülle ayrılmış birden fazla sabite kullanılabilir.
Yeni yapıda case’in kullanımı aşağıdaki gibidir:
Birden fazla sabite için tek bir değere işaret eden ifadeye sahip olabilir.
Sıra dışı durum fırlatabilir.
Bloğa da sahip olabilir.
Java 14 ile bu yapıya yeni bir anahtar kelime eklenmiştir: yield
yield ile case’den değer döndürülür.
Bu durumda case’de -> yerine eski şekildeki gibi : kullanılır.
yield ile case’den break kullanmadan değer döndürmek amaçlanmıştır.
Ayrıntılı bir okuma için:
https://medium.com/@AlexanderObregon/beginners-quick-guide-to-java-switch-statements-768c0757b98a
Switch-case in yapısının Java sürümleri boyunca değişimi için:
https://medium.com/@javatechie/the-evolution-of-switch-statement-from-java-7-to-java-17-4b5eee8d29b7
Kaynakça:
Java ile Nesne Merkezli Programlamaya Giriş-Akın Kaldıroğlu(Udemy)
메타데이터
- post_id
- 6fcd700b89c8
- slug
- akış-kontrolü-notlarım-switch-case-6fcd700b89c8
- url
- https://medium.com/@alikarbay98/ak%C4%B1%C5%9F-kontrol%C3%BC-notlar%C4%B1m-switch-case-6fcd700b89c8
- canonical_url
- https://medium.com/@alikarbay98/ak%C4%B1%C5%9F-kontrol%C3%BC-notlar%C4%B1m-switch-case-6fcd700b89c8
- author_url
- https://medium.com/@alikarbay98
- status
- ok
- fetched_at
- 2026-07-22 10:30:48