Java'da Switch Case Nedir ve Nasıl Kullanılır?

Yayınlanan: 2022-03-04

Java'daki anahtar durumu , programlama diline ne yapacağını söyleyen birçok Java ifadesinden biridir. İngilizce dilinde metin hakkında tam bir fikir veren ve yan tümceleri içeren cümleler gibi, Java ifadeleri de Java yorumlayıcısının yürüttüğü bir veya daha fazla ifadeyi içeren komutlardır. Daha basit bir ifadeyle, bir Java ifadesi, ne olması gerektiğini açıklayan bir talimattır.

Bir Java ifadesi noktalı virgül (;) ile biter ve Java'ya bu noktalı virgüle kadar olan talimatları işlemesini söyler. Varsayılan olarak, Java yorumlayıcısı, ifadelerin yazıldığı sırayı takip eder ve bir ifadeyi birbiri ardına çalıştırır. Ancak, döngüler ve koşullar gibi program akışını kontrol eden ifadeler (akış kontrol ifadeleri), varsayılan yürütme sırasını izlemez. Bu makale, bu tür bir seçim kontrol mekanizmasına odaklanmaktadır – Java switch case deyimi.

İçindekiler

Java'da bir anahtar durumu nedir?

Java üç tür ifadeyi destekler: değişkenlerin değerlerini değiştirmek, yöntemleri çağırmak ve nesneler oluşturmak için ifade ifadeleri, değişkenleri bildirmek için bildirim ifadeleri ve ifadelerin yürütme sırasını belirlemek için kontrol akışı ifadeleri.

Java switch case ifadesi, bir ifadenin veya değişkenin değerinin, çok yönlü bir dal yoluyla program yürütmesinin kontrol akışını değiştirmesine izin veren bir tür kontrol akışı ifadesidir . if-then ve if-then-else deyimlerinin aksine, Java switch deyiminin birkaç yürütme yolu vardır. Java'da büyük/küçük harf değişimi kısa, bayt, int ve karakter ilkel veri türleriyle çalışır. JDK7'den Java anahtarı, String sınıfı, numaralandırılmış türler ve Byte, Character, Integer ve Short gibi ilkel veri türlerini saran Wrapper sınıflarıyla da kullanılabilir.

Java'da bir switch case ifadesinin gövdesine switch bloğu denir. Switch bloğundaki her ifade, bir veya daha fazla durum veya varsayılan etiket kullanılarak etiketlenir. Bu nedenle, switch ifadesi ifadesini değerlendirir ve ardından eşleşen durum etiketini takip eden tüm ifadelerin yürütülmesini sağlar.

Aşağıda, switch case ifadesinin sözdizimi verilmiştir:

// ifadeyi değiştir

anahtar(ifade)

{

// vaka ifadeleri

// değerler aynı türde ifade olmalıdır

durum değeri1 :

// İfadeler

kırmak; // ara isteğe bağlıdır

durum değeri2 :

// İfadeler

kırmak; // ara isteğe bağlıdır

// Herhangi bir sayıda case ifadesine sahip olabiliriz

// aşağıdaki durumlardan hiçbiri doğru olmadığında kullanılan varsayılan ifadedir.

// Varsayılan durumda ara gerekmez.

varsayılan :

// İfadeler

}

Java anahtarı ifadesi örneği

Aşağıdaki Java kodu örneği, değeri yılın 12 ayından birini temsil eden “ay” adında bir int bildirir. Kod, ayın değerine göre ayın adını görüntülemek için switch case ifadesini kullanır.

genel sınıf SwitchExample {

public static void main(String[] args) {

int ay = 6;

String ayString;

geçiş (ay) {

durum 1: ayString = “Ocak”;

kırmak;

durum 2: ayString = “Şubat”;

kırmak;

durum 3: ayString = “Mart”;

kırmak;

durum 4: ayString = “Nisan”;

kırmak;

durum 5: ayString = “Mayıs”;

kırmak;

durum 6: ayString = “Haziran”;

kırmak;

durum 7: ayString = “Temmuz”;

kırmak;

durum 8: ayString = “Ağustos”;

kırmak;

durum 9: ayString = “Eylül”;

kırmak;

durum 10: ayString = “Ekim”;

kırmak;

durum 11: ayString = “Kasım”;

kırmak;

durum 12: ayString = “Aralık”;

kırmak;

varsayılan: ayString = “Geçersiz ay”;

kırmak;

}

System.out.println(ayString);

}

}

Çıktı: Haziran

Java anahtarı durumunda break ifadesinin amacı

Break ifadesi, Java switch vakasının, çevreleyen switch ifadesini sonlandıran önemli bir yönüdür. break deyimi gereklidir çünkü o olmadan switch bloğundaki deyimler geçersiz olur. Böylece, takip eden vaka etiketlerinin ifadesinden bağımsız olarak, eşleşen vaka etiketinden sonraki tüm ifadeler, bir break ifadesiyle karşılaşılıncaya kadar sırayla yürütülür.

Aşağıdaki kod, break ifadesinin yokluğunda düşen bir switch bloğunu gösteren bir örnektir.

genel sınıf SwitchExampleFallThrough {

public static void main(String[] args) {

java.util.ArrayList<String> futureMonths =

yeni java.util.ArrayList<String>();

int ay = 6;

geçiş (ay) {

durum 1: futureMonths.add(“Ocak”);

durum 2: futureMonths.add(“Şubat”);

durum 3: futureMonths.add(“Mart”);

durum 4: futureMonths.add(“Nisan”);

durum 5: futureMonths.add(“Mayıs”);

durum 6: futureMonths.add(“Haziran”);

durum 7: futureMonths.add(“Temmuz”);

durum 8: futureMonths.add(“Ağustos”);

durum 9: futureMonths.add(“Eylül”);

vaka 10: futureMonths.add(“Ekim”);

durum 11: futureMonths.add(“Kasım”);

vaka 12: futureMonths.add(“Aralık”);

kırmak;

varsayılan: ara;

}

if (futureMonths.isEmpty()) {

System.out.println(“Geçersiz ay numarası”);

} Başka {

for (Dize ayAdı: futureMonths) {

System.out.println(ayAdı);

}

}

}

}

Çıktı:

Haziran

Temmuz

Ağustos

Eylül

Ekim

Kasım

Aralık

Yukarıdaki kod, tamsayı ayına karşılık gelen yılın ayını ve onu takip eden ayları gösterir. Burada, son break ifadesi hiçbir amaca hizmet etmez çünkü akış switch ifadesinden düşer. Break ifadesinin kullanılması, kodun daha az hataya açık olmasını ve değişiklikleri kolaylaştırması açısından yararlıdır. Koddaki varsayılan bölüm, vaka bölümlerinin hiçbiri tarafından düzenlenmeyen tüm değerleri işler.

Birden çok vaka etiketli Java anahtarı ifadesi

Java'daki anahtar ifadeleri de birden çok büyük/küçük harf etiketine sahip olabilir. Aşağıdaki kod aynı şeyi göstermektedir – burada yılın belirli bir ayındaki gün sayısı hesaplanır.

class SwitchMultiple{

public static void main(String[] args) {

int ay = 2;

int yıl = 2020;

int numDays = 0;

geçiş (ay) {

durum 1: durum 3: durum 5:

durum 7: durum 8: durum 10:

durum 12:

numDays = 31;

kırmak;

durum 4: durum 6:

durum 9: durum 11:

numDays = 30;

kırmak;

durum 2:

if (((yıl % 4 == 0) &&

!(yıl % 100 == 0))

|| (yıl % 400 == 0))

numDays = 29;

Başka

numDays = 28;

kırmak;

varsayılan:

System.out.println(“Geçersiz ay.”);

kırmak;

}

System.out.println(“Gün Sayısı = “

+ numDays);

}

}

Çıktı:

Gün Sayısı = 29

İç içe Java anahtarı durum ifadeleri

İç içe anahtar, bir dış anahtarın ifade dizisinin bir parçası olarak bir anahtar kullandığınız zamandır. Bu durumda, bir switch ifadesi kendi bloğunu tanımladığı için diğer anahtardaki durum sabitleri ile iç anahtardakiler arasında bir çelişki yoktur.

Aşağıdaki örnek, iç içe Java anahtar durumu ifadelerinin kullanımını gösterir:

genel sınıf TestNest {

public static void main(String[] args)

{

Dize Şube = “ÖAM”;

int yıl = 2;

geçiş (yıl) {

dava 1:

System.out.println(“Seçmeli Dersler: Cebir, İleri İngilizce”);

kırmak;

durum 2:

anahtar (Şube) // iç içe anahtar

{

"ÖAM" vakası:

"CCE" vakası:

System.out.println(“Seçmeli Dersler: Büyük Veri, Makine Öğrenimi”);

kırmak;

durum “ECE”:

System.out.println(“seçmeli dersler : Anten Mühendisliği”);

kırmak;

varsayılan:

System.out.println(“Seçmeli dersler : Optimizasyon”);

}

}

}

}

Çıktı:

Seçmeli dersler: Büyük Veri, Makine Öğrenimi

Switch ifadelerinde string kullanımı

JDK7'den başlayarak, bir switch ifadesinin ifadesinde bir String nesnesi kullanabilirsiniz. switch ifadesinin ifadesindeki string nesnesinin her vaka etiketinin ilişkili ifadeleriyle karşılaştırılması, sanki String.equals yöntemini kullanıyormuş gibi. Ayrıca, switch deyimindeki dize nesnelerinin karşılaştırılması büyük/küçük harfe duyarlıdır.

Aşağıdaki kod örneği, "game" adlı Dize değerine dayalı olarak oyunun türünü görüntüler.

genel sınıf StringInSwitchStatementExample {

public static void main(String[] args) {

Yaylı oyun = “Kriket”;

geçiş(oyun){

vaka “Voleybol”: vaka”Futbol”: vaka”Kriket”:

System.out.println(“Bu bir açık hava oyunudur”);

kırmak;

vaka”Kart Oyunları”: vaka”Satranç”: vaka”Bulmacalar”: vaka”Kapalı saha basketbolu”:

System.out.println(“Bu bir iç mekan oyunudur”);

kırmak;

varsayılan:

System.out.println(“Hangi oyun?”);

}

}

}

Çıktı:

Bu bir açık hava oyunu

Java anahtarı deyimlerini kullanırken hatırlanması gereken kurallar

Java switch deyimlerini kullanırken belirli kuralları aklınızda tutmanız en iyisi olacaktır . Aşağıdaki aynı bir listedir:

  • Bir vakanın değeri ve anahtardaki değişken aynı veri tipine sahip olmalıdır.
  • Java anahtarı ifadeleri, yinelenen büyük/küçük harf değerlerine izin vermez.
  • Bir vaka değeri değişmez veya sabit olmalıdır. Değişkenlere izin verilmez.
  • Break ifadesinin anahtarın içinde kullanılması, bir ifade dizisini sonlandırır.
  • break ifadesi isteğe bağlıdır ve atlanması sonraki durumda yürütmeye devam edecektir.
  • Varsayılan ifade de isteğe bağlıdır ve anahtar bloğu içinde herhangi bir yerde olabilir. Sona yerleştirilmezse, sonraki case ifadesinin yürütülmesini atlamak için varsayılan ifadeden sonra bir break ifadesi eklenmelidir.

İleriye Doğru

Java, programcılar ve geliştiriciler arasında benzersiz bir popülerliğe sahiptir ve günümüzde en çok talep gören programlama dillerinden biridir. Söylemeye gerek yok ki, sürekli gelişen iş piyasası için kendilerini geliştirmek isteyen tomurcuklanan geliştiriciler ve yazılım mühendisleri, Java becerileri üzerinde bir kale elde etmelidir.

upGrad'ın Yazılım Mühendisliğinde İşe Bağlı PG Sertifikası, kodlamayı öğrenmek ve giriş seviyesi yazılım rollerine yerleşmek isteyen yeni başlayanlar ve son sınıf adayları için özel olarak tasarlanmıştır.

5 aylık çevrimiçi kursun neler içerdiğini merak ediyorsanız, size bir fikir verecek bazı önemli noktalar şunlardır:

  • MERN Yığını ve Bulutta Yerel Uzmanlıklar kazanın
  • Java, DSA, CSS3, HTML5, AWS, MERN, SQL ve NoSQL veritabanları ve daha fazlası gibi en iyi becerileri öğrenin
  • 350+ saat uygulamalı eğitim ile 500+ saat içerik
  • Beş endüstri projesi ve 50'den fazla canlı oturum
  • Yerleştirme hazırlığı ve kariyer rehberliği
  • Tartışma forumları ve güçlü akran ağı

Yazılım mühendisliğinde gelecek vaat eden bir kariyere doğru yolculuğunuzu başlatmak istiyorsanız, işte en iyisinden öğrenme şansınız.

1. Switch deyiminde durum nedir?

Java'daki bir switch ifadesi, bir değişkenin bir değerler listesine karşı eşitliğinin test edilmesini sağlar. Burada her değer bir durum olarak bilinir ve açık olan değişken her bir durum için kontrol edilir.

2. Anahtar kasasının avantajları nelerdir?

Java switch case ifadelerinin geleneksel if-else basamaklarına göre birincil avantajı, ilkinin programcıların daha kompakt, net ve okunabilir bir kod yazmasına izin vermesidir. Öte yandan, if-else ifadeleri genellikle çok sayıda kod tekrarı içerir. Bu nedenle, kodun belirli bir bölümünü değiştirmek istersek, başka yerlerde değişiklik yapmamız gerekir. Bu zaman alıcı ve hataya açık süreçten kaçınmak için switch kasaları kullanmak daha akıllıca olacaktır.

3. Switch case ile if-else arasındaki fark nedir?

switch deyimleri durumunda, break anahtar sözcüğüyle karşılaşılıncaya veya varsayılan deyim yürütülene kadar durumlar birbiri ardına yürütülür. Aksine, if-else deyimlerinde, koşula bağlı olarak 'if' veya 'else' bloğu yürütülür.