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
}
}