Switch-case ifadesi, hemen hemen aynı şeyi yapan if-elseif-else ifadesinin bir alternatifidir. switch-case ifadesi, bir eşleşme bulana kadar bir değişkeni bir dizi değere karşı test eder ve ardından bu eşleşmeye karşılık gelen kod bloğunu yürütür.
Söz dizimi şuna benzer şekildedir.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
switch ($i) { case 0: echo "i eşittir 0"; break; case 1: echo "i eşittir 1"; break; case 2: echo "i eşittir 2"; break; } |
Bu yazıda bir dizi Switch Case örneğine yer verilecektir.
PHP Switch Case Örnekleri
Örnek 1: Tuttuğun takıma göre ekrana şampiyon yazdıran program
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php #algoritmaornekleri.com #tanımlı değer $takim = "Edirne"; switch($takim){ case "Galatasaray": echo "Şampiyon GALTASARAY"; break; case "Beşiktaş": echo "Şampiyon BJK"; break; case "Trabzonspor": echo "Şampiyon TS"; break; case "Edirne": echo "Şampiyon Edirne Spor :)"; break; default: echo "Şampiyon $takim"; break; } |
Örnek 2: Girdiği ayın numarasına göre hangi ay olduğunu yazdıran program
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php #algoritmaornekleri.com #tanımlı değer $ay = 4; switch($ay){ case 1: echo "Ocak"; break; case 2: echo "Şubat"; break; case 3: echo "Mart"; break; case 4: echo "Nisan"; break; case 5: echo "Mayıs"; break; case 6: echo "Haziran"; break; case 7: echo "Temmuz"; break; case 8: echo "Ağustos"; break; case 9: echo "Eylül"; break; case 10: echo "Ekim"; break; case 11: echo "Kasım"; break; case 12: echo "Aralık"; break; default: echo "Hatalı Tarih"; break; } |
Örnek 3 Daha karmaşık karşılaştırmalarda true değeri switch değeri olarak kullanılabilir. Veya, switch yerine if-else deyimleri kullanılabilir.
Otoparktaki her araçtan saat ücreti olarak 2TL ücret alınmaktadır.
Eğer araç 3-5 saat kaldıysa 4. ve 5. saat için yüzde 20 indirim,
Eğer araç 5-8 saat kaldıysa yukarıdaki indirime ek olarak 6., 7. ve 8.saat için yüzde 50 indirim
8.saatin üzerinde her kaldığı saat için ise yüzde 75 indirim almaktadır.
Bu şartlara göre uygulanacak ücret tarifesini yapınız.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?php #algoritmaornekleri.com #tanımlı değer $saat = 9; $birim = 2; $ucret = 0; switch(true){ case $saat <= 3 === true: $ucret = $saat * $birim; break; case $saat <= 5 === true: $ucret = 3 * $birim + ($saat - 3) * $birim * 0.8; break; case $saat <= 8 === true: $ucret = 3 * $birim + 2 * $birim * 0.8 + ($saat - 5) * $birim * 0.5; break; default: $ucret = 3 * $birim + 2 * $birim * 0.8 + 3 * $birim * 0.5 + ($saat - 8) * $birim * 0.25; break; } echo "Kaldığı Süre : $saat <br>". "Ücreti : $ucret"; /* Otoparktaki her araçtan saat ücreti olarak 2TL ücret alınmaktadır. Eğer araç 3-5 saat kaldıysa 4. ve 5. saat için yüzde 20 indirim, Eğer araç 5-8 saat kaldıysa yukarıdaki indirime ek olarak 6., 7. ve 8.saat için yüzde 50 indirim 8.saatin üzerinde her kaldığı saat için ise yüzde 75 indirim almaktadır. Bu şartlara göre uygulanacak ücret tarifesini yapınız. */ |
Örnek 4: Aşağıdaki koşula göre programı yazınız.
Ayşe’ye babası alışveriş yapması için 2500 TL vermiştir. Ayşe A mağazasına giderek kendisine 100 TL’den 2 adet kazak, 75 TL’den 2 adet şapka, 250 TL’den 2 adet etek, 150 TL’den 1 adet çanta ve 300 TL’den 1 adet spor ayakkabısı almıştır. A mağazası alışveriş tutarına göre;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php #algoritmaornekleri.com #tanımlı değer $para = 2500; $alisveris = 2 * 100 + 75 * 2 + 250 * 2 + 150 + 300; $indirim = 0; switch(true){ case ($alisveris <= 500): $indirim = $alisveris * 0.02; break; case (500< $alisveris && $alisveris <= 1000): $indirim = $alisveris * 0.05; break; case (1000< $alisveris && $alisveris < 2000): $indirim = $alisveris * 0.08; break; case (2000< $alisveris): $indirim = $alisveris * 0.08; break; } $kalan =$para - $alisveris + $indirim; echo "Alışveriş Toplam : $alisveris<br>". "İndirim : $indirim <br>". "Kalan Para : $kalan"; |
Örnek 1: Basit bir örnekle başlayalım
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php $favRenk = "kırmızı"; switch ($favRenk) { case "kırmızı": echo "Favori renginiz Kırmızı"; break; case "yeşil": echo "Favori renginiz Yeşil"; break; case "mavi": echo "Favori renginiz Mavi"; break; default: echo "Favori renginiz YOK!"; } ?> |
Örnek 2: Toplu ulaşım örneği
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php #tam 6lira, sosyal 5lira ve öğrenci 3lira $bakiye = 15.5; $ucret = 0; $tarife = 1; // 0-Tam, 1-Sosyal, 2-Öğrenci switch($tarife){ case 0: $ucret = 6; break; case 1: $ucret = 5; break; case 2: $ucret = 3; } if($bakiye > $ucret){ $bakiye -= $ucret; echo "Kalan bakiye: $bakiye"; }else{ echo "Bakiye yetersiz"; } |
Örnek 3: Hafta içi mi Hafta sonu mu
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php $gun = 7; $aciklama = ""; switch ($gun) { case 1: case 2: case 3: case 4: case 5: $aciklama = "Hafta içi"; break; case 6: case 7: $aciklama = "Hafta sonu"; break; default: break; } echo "<h1>$gun. gün <b>$aciklama</b></h1>"; |
Örnek 4: Rakamları yazdırma
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
<?php $rakam = 8; switch ($rakam) { case 0: echo "sıfır"; break; case 1: echo "bir"; break; case 2: echo "iki"; break; case 3: echo "üç"; break; case 4: echo "dört"; break; case 5: echo "beş"; break; case 6: echo "altı"; break; case 7: echo "yedi"; break; case 8: echo "sekiz"; break; case 9: echo "dokuz"; break; default: break; } |
Örnek 5: Dört işlem örneği
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<?php $sayi1 = 30; $sayi2 = 10; $sonuc = 0; $islem = '-'; switch($islem){ case '+': $sonuc = $sayi1 + $sayi2; break; case '-': $sonuc = $sayi1 - $sayi2; break; case '*': $sonuc = $sayi1 * $sayi2; break; case '/': $sonuc = $sayi1 / $sayi2; break; default: break; } echo "$islem işlemi sonucu: $sonuc"; |
Örnek 6: Hafta içi mi Hafta sonu mu (in_array ile kullanım)
in_array
— Bir dizide bir değerin varlığını araştırır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php $gun = 6; $aciklama = ""; switch ($gun) { case in_array($gun,[1,2,3,4,5]): $aciklama = "Hafta içi"; break; case in_array($gun,[6,7]): $aciklama = "Hafta sonu"; break; default: break; } echo "<h1>$gun. gün <b>$aciklama</b></h1>"; |
Add Comment