Bilgisayar-Bilişim Teknolojileri
Ana Sayfa
Bilişim Teknolojileri Forumu Son Konuları
24 Saat
Bilişim Teknolojileri - Formatör - Bilgisayar Öğretmeni Kayıt
Kayıt Olun
iletişim
iletişim
Detaylı Arama
Arama
Yeni Konu Aç
Yeni Konu Aç

Php'de Switch Case yapısı

Konu, 'CMS sistemler (Wordpress PhpBB Drupal Xenforo vs.)' kısmında komodor64 tarafından paylaşıldı.


  1. komodor64

    komodor64 Seçkin Üye Seçkin Üye

    Kayıt:
    30 Ağustos 2009
    Mesajlar:
    336
    Beğeni:
    1
    PHPde 0 ile 25 arasındaki puanı bir aldınız şeklinde yazdırmak istiyroum. Bu işlem için switch case yapısını nasıl kullanmam gerekiyor. Yani aralıklı değerler için bu yapı nasıl kullanılıyor.
     
  2. manhem

    manhem Seçkin Üye Seçkin Üye

    Kayıt:
    25 Aralık 2007
    Mesajlar:
    964
    Beğeni:
    3
    nasıl yani diyelim ki 12 geldi ne yazmasını istiyorsunuz ? :shock:
     
  3. komodor64

    komodor64 Seçkin Üye Seçkin Üye

    Kayıt:
    30 Ağustos 2009
    Mesajlar:
    336
    Beğeni:
    1
    örneğin bir öğrenci sınavdan 0 ile 25 arası aldığında 0, 25 ile 44 arasında aldığında 1 ............... şeklinde giden yapıyı switch case kullanarak yapmak istiyroum.
     
  4. ttef

    ttef Site Gezgini

    Kayıt:
    13 Eylül 2007
    Mesajlar:
    34
    Beğeni:
    0
    hocam bu örnek işine yarar inşallah.

    <?php
    $ort=0;
    switch ($ort) {
    case ($ort>=0 && $ort<25) :echo "0";break;
    case ($ort>=25 && $ort<45) :echo "1";break;
    case ($ort>=45 && $ort<55) :echo "2";break;
    case ($ort>=55 && $ort<70) :echo "3";break;
    case ($ort>=70 && $ort<85) :echo "4";break;
    case ($ort>=85 && $ort<=100) :echo "5";break;

    default;echo "Yanlış Değer Girdiniz...";
    }

    ?>
     
  5. komodor64

    komodor64 Seçkin Üye Seçkin Üye

    Kayıt:
    30 Ağustos 2009
    Mesajlar:
    336
    Beğeni:
    1
    Teşekkürler hocam.
     
  6. ercan_kefken

    ercan_kefken Üye

    Kayıt:
    27 Kasım 2014
    Mesajlar:
    17
    Beğeni:
    0
    Hocalarım yukarıdaki soruda eğer $ort değeri "0" ise ekrana 1 yazdırıyor. Buna benzer bir problemde aşağıda yazdığım programda da mevcut. Problem $i değişkeninin değeri 0 olduğunda Ekrana "A" harfini yazdırıyor. .. Problem nereden kaynaklanıyor ... :cry:

    <?php
    //$i=rand(0,100);
    $i=0;
    switch($i)
    {
    case $i>89:
    echo $i." A";
    break;

    case $i>79:
    echo $i." B";
    break;

    case $i>69:
    echo $i." C";
    break;

    case $i>59:
    echo $i." D";
    break;

    default:
    echo $i." F";
    break;
    }
    ?>
     
  7. inikat

    inikat Süper Üye Süper Üye

    Kayıt:
    25 Eylül 2009
    Mesajlar:
    1.269
    Beğeni:
    100
    sayın @ercan_kefken hocam : switch ¶

    switch deyimi, aynı ifade içersinde yer alan bir dizi IF deyimine benzer. Birçok durumda, aynı değişkeni (ya da ifadeyi) birden çok değerle karşılaştırmak ve her karşılaştırmanın sonucunu ayrı bir kod parçası çalıştırarak değerlendirmek istersiniz. İşte bu, switch deyiminin varlık sebebidir.

    Bilginize: Başka bazı dillerden farklı olarak, continue deyimi switch ile uygulanabilir ve break ile benzerlik gösterir. Bir döngü içerisinde switch kullandıysanız ve kodun yürütülmesine dıştaki döngünün sonraki yinelemeden devam etmesini istiyorsanız, continue 2 kullanabilirsiniz.
    Bilginize:
    switch ve case gevşek karşılaştırma yapar.
    kaynak :http://php.net/manual/tr/control-structures.switch.php
    http://php.net/manual/tr/types.comparis ... ions-loose

    bir aralık karşılaştırmak için switch pek tercih edilen bir şekil değildir. hele ki switch içine yazdığımız parametreyi yine case içinde değerlendireceksek.
    kaynaklarda ikinci link içeriği için de php.net gevşek karşılaştırma ifadesi kullanmış.

    yine de sizin istediğiniz gibi yapıyorsanız da büyükten değil küçükten başlatıp deneme yapabilirsiniz ama "0" değeri için belirsiz sonuç vermesi olası.
     
  8. ercan_kefken

    ercan_kefken Üye

    Kayıt:
    27 Kasım 2014
    Mesajlar:
    17
    Beğeni:
    0
    Eyvallah hocam,
    Bende bu soruyu if ile yaptırdım arkadaşlara.
    Sonra aynı soruyu switch kullanarak yapmalarını istemiştim ama böyle bir şey ile karşılaştım.
    Yardımlarınız için Teşekkür ettim :)
     
  9. inikat

    inikat Süper Üye Süper Üye

    Kayıt:
    25 Eylül 2009
    Mesajlar:
    1.269
    Beğeni:
    100
    bugün bir arkadaşar şu $i=0 olayını konuçtuk o da benim gibi düşünüyor switch yapısı buna uygun değil. hatta switch true false üzerine çalıştığı için 0 değeri gelince bit olarak işlemeye başlıyor ve 89 değerinin bit değeriyle karşılaştırıyor olabilir diye de ekledi. mantıklı bitsel karşılaştırmalar bir dönüp bakmak lazım
     

Sayfayı Paylaş /bbnetsosyal