10 Eylül
Selam Gençler;
Switch statementi de önceki derste değindiğimiz "if-else" yapısına çok benzer bu statementde de programın akışını değiştirmek için kullanırız ayrıca biz bir conditiondan birden fazla şartı sağlayabilmesini istiyorsak bu ifadeyi kullanıyoruz.
Switch statementinde desteklenen veri tipleri aşağıdaki gibidir :
Kısaca özetlemek istersek boolean ve long (Boolean ve Long) değerleri dışındaki değerleri kullanabiliriz.
Note : case statementleri bir sayı (literal), enum constant (enum sabiti) yada bir final constant variable (final sabit değişkeni) olmak zorundadır.
public class Main {
    public static void main(String[] args) {
        switch(Expression){
            case value1:
                // Eğer ki Expression value1'e eşitse burası çalışacaktır.
                break;
            case value2:
                // Eğer ki Expression value2'e eşitse burası çalışacaktır.
                break;
            ....
            default:
                // Eğer ki Expression value1,value2 yada diğer value'lere eşit değilse buraya girecektir.
        }
    }
}
Önceki dersteki if-else örneğimizi buraya taşıyalım.
public class Main {
    public static void main(String[] args) {
        int gun = 3;
        switch (gun) {
            case 1:
                System.out.println("P.tesi");
                break;
            case 2:
                System.out.println("Salı");
                break;
            case 3:
                System.out.println("Çarşamba");
                break;
            case 4:
                System.out.println("Perşembe");
                break;
            case 5:
                System.out.println("Cuma");
                break;
            case 6:
                System.out.println("Cumartesi");
                break;
            case 7:
                System.out.println("Pazar");
                break;
            default:
                System.out.println("Geçersiz gün.");
                break;
        }
    }
}
buradaki break ifadesi bizim artık ordan çıkmamız gerektiğini yani yukarıda görüldüğü üzere case yani durum 3 olursa eğer Çarşambaya girecek ve daha sonrasında switch bloğunu terkedecektir. Eğer ki biz break ifadelerini kaldırırsak case durumunun eşit olduğu yani 3.Çarşamba gününe gelecektir ve daha sonrasında o case durumundan çıkmayıp altındaki case'leri de ekrana yazacaktır...
public class Main {
    public static void main(String[] args) {
        int gun = 3;
        switch (gun) {
            case 1:
                System.out.println("P.tesi");
            case 2:
                System.out.println("Salı");
            case 3:
                System.out.println("Çarşamba");
            case 4:
                System.out.println("Perşembe");
            case 5:
                System.out.println("Cuma");
            case 6:
                System.out.println("Cumartesi");
            case 7:
                System.out.println("Pazar");
            default:
                System.out.println("Geçersiz gün.");
        }
    }
}
Çıktı aşağıdaki gibi olur :
Çarşamba
Perşembe
Cuma
Cumartesi
Pazar
Geçersiz gün.
Ve son olarak bir güzel örneği de bırakıp bitirelim.
Unutmayın switch'de case kısımlarında sadece yukarıda yazdığımız gibi constantlar geçerlidir yani compile-time'de değerleri bilinenler.
private int getSortOrder(String firstName,final String lastName){
        String middleName = "Patricia";
        final String suffix = "JR";
        int id = 0;
        switch(firstName){
            case "test": return 5;
            case middleName: // DERLEMEZ çünkü middleName bir constant değil.
                id = 5;
                break;
            case suffix: // DERLER
                id=0;
                break;
            case lastName: // DERLEMEZ çünkü lastName constant değil.
                id = 8;
                break;
            case 5:    //DERLEMEZ TİP UYUMSUZLUĞU
            case 'J': // DERLEMEZ TİP UYUMSUZLUĞU
            case java.time.DayOfWeek.SUNDAY: // DERLEMEZ TİP UYUMSUZLUĞU
        }
    }