Java'da if ve else
Şimdiye kadar true veya false tuttunuz ya da && gibi işaretlerle iki başka değerden bir true veya false kurdunuz. O sayfalar hâlâ bir adın altında tek bir değerle bitiyordu. Bu sayfa o değeri başka işe koşar: Java true veya false'a bakar ve yalnızca bir satır grubunu çalıştırır. Bu seçimin aracı if'tir. Diğer grup, gerektiğinde, else'tir.
Bir boolean hangi bloğun çalışacağını belirler
Gate.java adlı küçük bir program dosyası oluşturun. İlk satırdaki public class dosya adıyla aynı olmalıdır: public class Gate. Bu dosyada eski bir Mint sınıfı tutmayın; derleyici sınıf adının ve dosya adının uyuşmasını bekler.
main içinde, yolu seçmeden önce bir boolean tutun:
boolean ready = true;
Bu satır hiçbir şey yazdırmaz. Yalnızca ready adına true sözcüğünü verir. ready küçük r ile başlar. true'nun çevresinde tırnak yoktur. Noktalı virgül tutma satırını bitirir. Ondan sonra seçimin kendisi gelir:
if (ready) {
System.out.println("pass");
} else {
System.out.println("wait");
}
if sözcüğü küçüktür: i, sonra f. Sizin uydurduğunuz bir ad değildir. if'ten sonra boşluk olabilir; boşluksuz if(ready) da derlenir. Parantezlerin içinde ready adı oturur — tırnak yok, == yok, && yok. ready true tuttuğunda Java ilk süslü parantez çiftine girer ve System.out.println("pass"); çalıştırır. pass çevresindeki tırnaklar ekran için harfleri işaretler. Ekranda bir satır görmelisiniz: pass. else bloğu bu çalıştırmada tamamen atlanır. Derlemeden önce dosyayı kaydedin.
pass yazdıran program
Bu, ilk derlediğiniz sürümdür.
public class Gate {
public static void main(String[] args) {
boolean ready = true;
if (ready) {
System.out.println("pass");
} else {
System.out.println("wait");
}
}
}
Gate.java'nın olduğu klasörden javac Gate.java yazın. Süslü parantezler ve yuvarlak parantezler uyuşunca javac kendi satırını yazmaz. Sonra java Gate yazın — java Gate.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 pass 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; boolean ile yukarıdaki if / else'i tutun. Yanlış bir ekran satırı için yeni JDK kurmanız gerekmez.
Neden pass da wait değil? Çünkü parantezdeki test true idi. Bu çalıştırmada Java true sözcüğünün kendisini yazdırmaz. Seçilen süslü parantezlerin içindeki println ne çalıştırırsa onu yazar. Üç işi aklınızda tutun: yuvarlak parantezler testi tutar, süslü parantezler bir arada olan satırları gruplar, ekrana yazan tek parça ise println'dir. Ekran true gösteriyorsa, büyük olasılıkla hâlâ boolean'ın kendisini yazdırıyorsunuzdur ya da main içinde eski bir birleştirme-işareti demosu kalmıştır. ready true iken o yazma satırını if süslü parantezlerinin içindeki println("pass") ile değiştirin.
ready false olduğunda
Yalnızca tutulan değeri değiştirin:
boolean ready = false;
if / else yapısını olduğu gibi bırakın. Şimdi test başarısızdır, bu yüzden Java ilk süslü parantezleri atlar ve else süslü parantezlerini çalıştırır. Ekranda bir satır wait görünmelidir.
public class Gate {
public static void main(String[] args) {
boolean ready = false;
if (ready) {
System.out.println("pass");
} else {
System.out.println("wait");
}
}
}
Yeniden derleyip çalıştırın: javac Gate.java, sonra java Gate. wait görmelisiniz. Dikkat edin: if satırını ya da else satırını yeniden yazmadınız — yalnızca ready altındaki değer değişti. wait'i gördükten sonra ilk demoya dönmek için boolean ready = true; koyabilirsiniz. Her iki sürüm de geçerli Java'dır. Aynı if / else biçimini karşıt testlerle öğretirler.
false çalıştırmasını bir kez daha sırayla okuyun. ready false tutar. if (ready) sorulur. Cevap false'tur, bu yüzden ilk { ile eşleşen } arasındaki her satır atlanır — println("pass") dahil. Denetim else'te sürer. else süslü parantezleri arasındaki satırlar çalışır, böylece println("wait") yürütülür. Ekranda bir satır vardır. İkinci satır yoktur. false sözcüğünün kendisi, siz bilerek yazdırmadıkça görünmez.
Seçimi açık tutan kurallar
Testin çevresindeki yuvarlak parantezler zorunludur. Parantezsiz if ready { … } yazmak javac'ın hata vermesine yol açar. Bu sayfadaki test bir boolean'dır: ready gibi bir ad, ya da tırnaksız çıplak true veya false sözcükleri. if ("true") harfleri boolean testin ait olduğu yere koyar; javac hata bildirir. Tırnakları kaldırın ya da boolean adı kullanmaya devam edin. if (1) gibi yalnız bir tam sayı, bu dersin hazırlığı tutma biçimi değildir; true, false veya bir boolean adıyla kalın.
Süslü parantezler dersi okumak için önemlidir. Bu sayfa her yolu her zaman { } içine sarar. Java süslü parantezsiz tek satırlık if'e izin verir, ama o if'in altına ikinci bir satır eklediğiniz anda, süslü parantez yoksa teste yalnızca ilk satır bağlı kalır. Yeni başlayanlar bu ayrıntıyı kolay kaçırır. Her iki demoda da süslü parantez tutun ki her yol açık olsun: testten sonra bir açılış, else'ten önce bir kapanış, sonra else için bir çift daha.
else bir if'e aittir. Yalnız bir else javac'ın hata vermesine yol açar. Bu sayfada bir if'in bir else'i vardır. Yalnızca true yoluyla ilgileniyorsanız else yazmayabilirsiniz; ilk öğretim demosu yine de iki tarafı gösterir ki çatal görülsün. Birçok sabit değer arasından seçmek sonraki sayfadaki switch'tir — burada başka bir else ile üçüncü dal uydurmayın.
Testi ayrı bir ad olmadan da yazabilirsiniz: if (true) { … } else { … }. Bu derlenir ve çalışır. Demolar ready kullanır; böylece tutulan bir boolean'ın seçimi nasıl sürdüğünü görürsünüz — true ve false tutmayı öğrendikten sonra programlar genelde böyle görünür. if (score > 10) gibi karşılaştırmalar, bu true / false çatalında rahat olduktan sonra gelir; bu sayfa testi zaten anladığınız bir boolean değer olarak tutar.
📊 ready ve ekran
| ready | Ekran |
|---|---|
| true | pass |
| false | wait |
Tabloyu bir çalıştırmanın yerine değil, çalıştırmadan sonra kontrol için kullanın. İlk demoda true pass yazdırır. İkinci demoda false wait yazdırır. İki println satırı birden çalıştıysa süslü parantezler ya da if / else eşleşmesi yanlıştır — yapıyı düzeltin; Java'yı yeniden kurmayın.
Yaygın bir karışıklık sözdiziminin kendisini yazdırmaktır: System.out.println("if (ready)");. Bu if (ready) karakterlerini yazar. Bir yol seçmez. Başka bir karışıklık aynı main içinde && veya == demolarını bırakıp ekranın neden pass yerine true gösterdiğine şaşmaktır. Bu oturumun main'i yalnızca boolean ile if / else tutmalıdır.
Artık ne yapabilirsiniz
Bir boolean tutabilir, onu if (…) içine koyabilir ve her sonuca kendi süslü parantezli bloğunu verebilirsiniz. Test true iken bir println çalışır; false iken else println'i çalışır. Sonraki sayfa switch'tir; orada birkaç sabit değerin her biri kendi case'ini alır, tek bir true / false çatalı yerine.
🧠 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