Switch Case Yapısı Nedir?
Bir Java switch case yapısı, bir değerin farklı durumlara göre karşılaştırılmasına olanak tanır. Genellikle bir değişkenin değeri farklı durumlarla karşılaştırır ve her durum için farklı işlemler yapılabilir. Bu durumlar genellikle sabit ifadeler veya sabit değerler olur.
Örnek olarak, kullanıcıdan bir günün sayısal karşılığını alıp bu sayıya karşılık gelen günü yazdıran bir program yazalım:
import java.util.Scanner;
public class GunAdi {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Lütfen bir günün sayısal karşılığını girin (1-7): ");
int gun = scanner.nextInt();
scanner.close();
String gunAdi;
switch (gun) {
case 1:
gunAdi = "Pazartesi";
break;
case 2:
gunAdi = "Salı";
break;
case 3:
gunAdi = "Çarşamba";
break;
case 4:
gunAdi = "Perşembe";
break;
case 5:
gunAdi = "Cuma";
break;
case 6:
gunAdi = "Cumartesi";
break;
case 7:
gunAdi = "Pazar";
break;
default:
gunAdi = "Geçersiz gün numarası!";
break;
}
System.out.println("Gün: " + gunAdi);
}
}
Bu örnekte, switch ifadesiyle kullanıcının girdiği sayıya göre bir gün adı belirlenir. Kullanıcı 1-7 arasında bir sayı girmişse, program o sayıya karşılık gelen gün adını ekrana yazdırır. Eğer kullanıcı 1-7 aralığında bir sayı dışında bir değer girerse, default durumu çalışır ve "Geçersiz gün numarası!" mesajı gösterilir.
Her case bloğu, bir değerin belirli bir duruma eşit olup olmadığını kontrol eder. Eşleşme durumunda ilgili case bloğu çalışır ve break ifadesiyle switch yapısından çıkılır. break ifadesi olmazsa, eşleşen case bloğu çalıştıktan sonra diğer case blokları da çalışabilir, bu da istenmeyen sonuçlara yol açabilir.
default durumu, hiçbir case bloğunun eşleşmediği durum için bir yedek durumdur ve isteğe bağlı olarak kullanılabilir.
Örneğin, bir sayının tek mi yoksa çift mi olduğunu kontrol eden başka bir program yazalım:
import java.util.Scanner;
public class TekCift {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Lütfen bir sayı girin: ");
int sayi = scanner.nextInt();
scanner.close();
String sonuc;
switch (sayi % 2) {
case 0:
sonuc = "Çift sayı";
break;
case 1:
sonuc = "Tek sayı";
break;
default:
sonuc = "Geçersiz giriş";
break;
}
System.out.println(sayi + " bir " + sonuc + "dır.");
}
}
Bu program, kullanıcıdan bir sayı alır ve bu sayının tek mi çift mi olduğunu kontrol eder. switch ifadesi içinde sayının 2'ye bölümünden kalanına (sayi % 2) göre durumlar belirlenir. Eğer sayının 2'ye bölümünden kalan 0 ise, yani sayı çiftse, case 0 durumu çalışır ve sonuc değişkenine "Çift sayı" atanır. Eğer kalan 1 ise, yani sayı tekse, case 1 durumu çalışır ve sonuc değişkenine "Tek sayı" atanır. Bu durumların dışında bir durum oluşursa, default durumu çalışır ve "Geçersiz giriş" mesajı gösterilir.