Sayfa 1 - Toplam 2 12 SonSon
Bulunan 1 den 10 - Toplam 14
İşlem önceliği - - Programlama - Ceviz Forum
  1. #1
    Ryu karflake Üyenin Avatarı
    Üyelik Tarihi
    11-Şubat-2003
    Mesaj
    804

    Varsayılan İşlem önceliği

    Hazır bayram tatiliyken Hakkı Öcal'ın php kitapçığını inceliyordum, aşağıdaki örnekle karşılaştım.

    Örnekte de görüldüğü üzere ve işlemini yapabilmek için && ve and operatörleri kullanılıyormuş. &&'ın and'e göre işlem önceliği varmış.

    Burada kafama takılan bir nokta var. Php'de parantezler işlem önceliğini değiştirmiyor mu? Yani aşağıdaki renkli parantezlerden dolayı işlem önceliği değişmiyor mu?
    Kod:
    <?php
        $vize = 45;
        $final = 65;
        $ilk_sem = 45; 
        $ortalama = ($vize + $final) / 2;
        if(($vize >= 45 && $final >= 45) and ($ilk_sem >= 65 || $ortalama >= 65)) {
        print ("Öğrenci geçti!");
        }
        else {
        print ("Öğrenci kaldı!");
        }
    ?>
    Bu suya yazılan bir yazıdır...

  2. #2
    acemi
    misafir

    Varsayılan

    Önce parantez içleri, operatörlerin işlem önceliğine göre işlenir. Sonra parantezler kaldirilir; kalan ifade, operatörlerin işlem önceliğine göre işlenir.

    Yani kafan karismasin, parantez içleri önce işleniyor.

  3. #3
    Ceviz Üyesi Zangetsu Üyenin Avatarı
    Üyelik Tarihi
    03-Nisan-2006
    Nereden
    Antalya
    Mesaj
    724

    Varsayılan

    Alıntı karflake Demiş ki: Mesajı Görüntüle
    Örnekte de görüldüğü üzere ve işlemini yapabilmek için && ve and operatörleri kullanılıyormuş. &&'ın and'e göre işlem önceliği varmış.
    [/code]
    Burada bahsettiğin tamamen mantıksal kontroller için geçerli yani matematiksel işlemde ilk parantez içleri sonrasında çarpma - bölme - toplama - çıkarma diyen gider... mantıksal da ise örnek verim

    (a==b && c!=s) && (v==d || g==d)

    ise ginem parantez içceri ilk kontrol edilir. Birde or = || , and = && .

  4. #4
    Ceviz Üyesi Meteryus Üyenin Avatarı
    Üyelik Tarihi
    30-Mart-2004
    Mesaj
    1,484

    Varsayılan

    PHP Kodu:
    <?
    $a
    =1$b=1
    if(
    $a=&& $a==$b // Eşit
    ?><?
    $a
    =1$b=1
    if(
    $a=and $a==$b //Eşit değil !
    ?>
    Şu örnek işlem && ve and arasındaki işlem önceliği farkını kısaca açıklar sanırım.
    meteryus.com // yenilendi

  5. #5
    Ryu karflake Üyenin Avatarı
    Üyelik Tarihi
    11-Şubat-2003
    Mesaj
    804

    Varsayılan

    PHP Kodu:
    $a=1$b=1;  
    if(
    $a=&& $a==$b // Eşit 
    Anladığım kadarıyla && yüksek öncelikli olduğundan atama yapılmadan önce karşılaştırma yapılıyor ve eşit sonucu bulunuyor.

    PHP Kodu:
    $a=1$b=1;  
    if(
    $a=and $a==$b //Eşit değil ! 
    Burada ise and düşük öncelikli olduğu için evvela atama yapılıyor ve sonuç eşit değil çıkıyor.

    Doğru anlamış mıyım?

    If bloğunda atama yapmanın ne gibi bir avantajı olduğu da merak ettiklerim arasında aslında.
    Bu suya yazılan bir yazıdır...

  6. #6
    Ceviz Üyesi perlci Üyenin Avatarı
    Üyelik Tarihi
    12-Eylül-2004
    Mesaj
    2,234

    Varsayılan

    Hatalı yazmışsın: if($a=2 && $a==$b ) hatalı . Bu şöyle olacak if($a==2 && $a==$b )

    PHP Kodu:
    <?php

    $a
    =1$b=1;
    if(
    $a==&& $a==$b )
    {
    echo 
    'Koşul var';
    }else{
    echo 
    'Koşul yok';
    }

    ?>



    <?php

    $a
    =1$b=1;
    if(
    $a==and $a==$b )
    {
    echo 
    'Koşul var';
    }else{
    echo 
    'Koşul yok';
    }

    ?>

    Her ikiside 'Koşul yok' yazar.
    adanzyephp.com
    PHP,CSS,AJAX,PERL

  7. #7
    Ceviz Üyesi Meteryus Üyenin Avatarı
    Üyelik Tarihi
    30-Mart-2004
    Mesaj
    1,484

    Varsayılan

    Doğru anlamış mıyım?
    If bloğunda atama yapmanın ne gibi bir avantajı olduğu da merak ettiklerim arasında aslında.
    Doğru anlamışsın, if bloğrunda atama yapmanın sıklıkla pek bir anlamı olmaz, çok spesifik durumlarda belki lazım olabilir, ben o kodu sadece işlevi göstermek için yazmıştım

    Hatalı yazmışsın:
    perlci, kod hatalı değil, örnek olsun diye öyle
    meteryus.com // yenilendi

  8. #8
    Ryu karflake Üyenin Avatarı
    Üyelik Tarihi
    11-Şubat-2003
    Mesaj
    804

    Varsayılan

    Teşekkürler arkadaşlar, anladım.
    Bu suya yazılan bir yazıdır...

  9. #9
    Ceviz Üyesi Zangetsu Üyenin Avatarı
    Üyelik Tarihi
    03-Nisan-2006
    Nereden
    Antalya
    Mesaj
    724

    Varsayılan

    hatalı $a=2 olmaz ki şartta...

  10. #10
    Ceviz Üyesi perlci Üyenin Avatarı
    Üyelik Tarihi
    12-Eylül-2004
    Mesaj
    2,234

    Varsayılan

    Alıntı Meteryus Demiş ki: Mesajı Görüntüle
    perlci, kod hatalı değil, örnek olsun diye öyle
    Okurken nasıl okuyorsam,yanlış anladım
    adanzyephp.com
    PHP,CSS,AJAX,PERL

Sayfa 1 - Toplam 2 12 SonSon

Konu Bilgileri

Bu Konuya Gözatan Kullanıcılar

Şu anda 1 kullanıcı bu konuyu görüntülüyor. (0 kayıtlı ve 1 misafir)

Yer İmleri

Mesaj Yetkileriniz

  • Yeni konu açmaya yetkiniz yok
  • Cevap yazmaya yetkiniz yok
  • Eklenti yüklemeye yetkiniz yok
  • Mesajınızı düzeltmeye yetkiniz yok
  •