Java'da switch
2 tam sayısını choice adı altında tutun. case 1, case 2 ve case 3'ü — her biri kendi println'iyle — ve bir default'u listeleyen bir switch kurun. Derleyip çalıştırdığınızda ekran bir satır mid göstermelidir; çünkü case 2 eşleşir. Bu sayfanın öğrettiği budur: bir değer, birkaç sabit etiket, bir seçilmiş yol.
Bir değer, birkaç sabit etiket
Dial.java adlı küçük bir program dosyası oluşturun. İlk satırdaki public class dosya adıyla aynı olmalıdır: public class Dial. Bu dosyada eski bir Gate veya Mint sınıf adı tutmayın; derleyici sınıf adının ve dosya adının uyuşmasını bekler.
main içinde, switch'ten önce bir tam sayı tutun:
int choice = 2;
Bu satır hiçbir şey yazdırmaz. Yalnızca choice adına 2 değerini verir. choice küçük c ile başlar. 2'nin çevresinde tırnak yoktur. Noktalı virgül tutma satırını bitirir. Ondan sonra switch'in kendisi gelir:
switch (choice) {
case 1:
System.out.println("low");
break;
case 2:
System.out.println("mid");
break;
case 3:
System.out.println("high");
break;
default:
System.out.println("none");
break;
}
switch sözcüğü küçüktür. Parantezlerin içinde choice adı oturur — Java'nın her case etiketiyle karşılaştıracağı değer. Her case satırı noktalı virgülle değil iki nokta üst üste ile biter. case 2'nin altında System.out.println("mid"); sonra break sözcüğü ve noktalı virgül vardır. choice 2 tuttuğunda Java case 2'ye girer, mid yazdırır, break'e ulaşır ve tüm switch'ten çıkar. case 3 ve default bu çalıştırmada çalışmaz. Derlemeden önce dosyayı kaydedin.
mid yazdıran program
Bu, ilk derlediğiniz sürümdür. choice 2'dir, bu yüzden eşleşen etiket case 2'dir.
public class Dial {
public static void main(String[] args) {
int choice = 2;
switch (choice) {
case 1:
System.out.println("low");
break;
case 2:
System.out.println("mid");
break;
case 3:
System.out.println("high");
break;
default:
System.out.println("none");
break;
}
}
}
Dial.java'nın olduğu klasörden javac Dial.java yazın. Süslü parantezler, yuvarlak parantezler ve iki nokta üst üste uyuşunca javac kendi satırını yazmaz. Sonra java Dial yazın — java Dial.java değil. İkinci komuttan .java sonunu çıkarın. Aynı iki komut Windows'ta da macOS'ta da çalışır; bu sayfa iki sistem için de farklı bir kabuk yazımı istemez. Program mid yazdırmalı ve durmalıdır. Sizin yazmanızı beklemez. Terminal klavye girdisi bekliyorsa, dosyada hâlâ eski bir alıştırmadan nextLine çağrısı vardır. O çağrıyı silin; int ile yukarıdaki switch'i tutun. Yanlış bir ekran satırı için yeni JDK kurmanız gerekmez.
Neden mid de low veya high değil? Çünkü parantezdeki değer 2 idi ve eşleşen etiket case 2'dir. Bu çalıştırmada Java, o rakam için bilerek bir println yazmadıkça 2 rakamının kendisini yazdırmaz. Eşleşen case altındaki println ne çalıştırırsa onu yazar. Yuvarlak parantezler karşılaştırılan değeri tutar. Her case etiketi burada sabit bir tam sayıdır. break, sonraki case'ler sessiz kalsın diye switch'i bitirir. default, hiçbir case ile eşleşmeyen değerleri bekler — choice 2 iken default kullanılmaz.
Hiçbir case eşleşmediğinde
Yalnızca tutulan değeri değiştirin:
int choice = 9;
switch yapısını olduğu gibi bırakın. Artık case 1, case 2 veya case 3'ten hiçbiri eşleşmez. Java default'a gider ve System.out.println("none"); çalıştırır. Ekranda bir satır none görünmelidir.
public class Dial {
public static void main(String[] args) {
int choice = 9;
switch (choice) {
case 1:
System.out.println("low");
break;
case 2:
System.out.println("mid");
break;
case 3:
System.out.println("high");
break;
default:
System.out.println("none");
break;
}
}
}
Yeniden derleyip çalıştırın: javac Dial.java, sonra java Dial. none görmelisiniz. case satırlarını yeniden yazmadınız — yalnızca choice altındaki değer değişti. none'u gördükten sonra ilk demoya dönmek için int choice = 2; koyabilirsiniz. Her iki sürüm de geçerli Java'dır. Aynı switch biçimini bir kez eşleşen case ile, bir kez default ile öğretirler.
default çalıştırmasını bir kez daha sırayla okuyun. choice 9 tutar. switch (choice) başlar. case 1 eşleşmez. case 2 eşleşmez. case 3 eşleşmez. Denetim default'ta sürer. println("none") yürütülür. Ekranda bir satır vardır. 9 rakamının kendisi, siz bilerek yazdırmadıkça görünmez.
break sonraki case'leri durdurur
break süs değildir. Onsuz Java, bir eşleşmeden sonra sonraki case'in satırlarını da çalıştırmaya devam edebilir. Bu düşme (fall-through) yeni başlayanları şaşırtır. İşte case 2'den sonra break'i bilerek unutan kısa bir demo — ayrı bir denemede tutun ya da ana ders dosyanız olarak derlemeden önce dikkatle okuyun:
public class Dial {
public static void main(String[] args) {
int choice = 2;
switch (choice) {
case 1:
System.out.println("low");
break;
case 2:
System.out.println("mid");
case 3:
System.out.println("high");
break;
default:
System.out.println("none");
break;
}
}
}
choice 2 iken ve case 2 altında break yokken ekran bir satırda mid, sonraki satırda high gösterebilir. case 2 eşleşti, mid yazdırdı, sonra case 3'e düştü ve high da yazdırdı. İlk öğretim demoları her case altında break tutar ki her yol tam bir satır yazsın. Dial.java'yı yeniden tutulan ders dosyası saymadan önce break'i geri koyun.
Etiketleri açık tutan kurallar
Anahtarlanan değerin çevresindeki yuvarlak parantezler zorunludur. Parantezsiz switch choice { … } yazmak javac'ın hata vermesine yol açar. Bu sayfadaki her case etiketi bir tam sayı sabitidir: case 1:, case 2:, case 3:. Etiketten sonra iki nokta üst üste gelir. İki nokta yerine noktalı virgülle case 2; yazmak, bu dersin derlediği biçim değildir. default'tan sonra değer yoktur — yalnızca default: ve ardından «hiçbir şey eşleşmedi» satırları.
switch, if ile aynı araç değildir. if (ready) true ya da false sorusu sorar. switch (choice) bir değeri sabit etiket listesiyle eşleştirir. boolean ile switch (ready) yazıp Gate.java ders biçimini beklemeyin. Bu sayfanın demoları choice adlı bir int ve tam sayı case etiketlerinde kalır. if (score > 10) gibi karşılaştırmalar aralık istediğinizde hâlâ if'e aittir; switch, değerler ayrık ve önceden bilindiğinde parlar.
Yaygın bir karışıklık sözdiziminin kendisini yazdırmaktır: System.out.println("switch (choice)");. Bu, switch (choice) karakterlerini yazar. Bir case seçmez. Başka bir karışıklık, aynı main içinde Gate sayfasının if / else demosunu bırakıp ekranın neden mid yerine pass gösterdiğine şaşmaktır. Bu oturumun main'i yalnızca int ve switch tutmalıdır.
📊 choice ve ekran
| choice | Ekran |
|---|---|
| 1 | low |
| 2 | mid |
| 3 | high |
| 9 | none |
Tabloyu bir çalıştırmanın yerine değil, sonrasında kontrol olarak kullanın. İlk demoda choice 2 mid yazdırır. İkinci demoda choice 9 none yazdırır. choice 1 low yazdırır. choice 3 high yazdırır. choice 2 için hem mid hem high görünüyorsa, case 2 altında break eksiktir — break'leri düzeltin; Java'yı yeniden kurmayın.
Artık ne yapabilirsiniz
Bir tam sayı tutabilir, onu switch (…) içine koyabilir ve her sabit değere println ve break'li kendi case'ini verebilirsiniz. Bir case eşleşince o satır çalışır; hiçbir şey eşleşmezse default çalışır. Sonraki sayfa for'dur; orada sayaç değişirken aynı satır bloğu tekrar tekrar çalışabilir.
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek