Menu
Coddy logo textTech

Operator Precedence

Coddy'nin PHP Journey'sinin Temeller bölümünün bir parçası — ders 20 / 71.

Bir ifade birden fazla operatör içerdiğinde, PHP operatör önceliği adı verilen belirli bir sırayı takip eder. Tıpkı matematikte olduğu gibi, çarpma ve bölme işlemleri toplama ve çıkarmadan önce gerçekleştirilir.

<?php
echo 5 + 3 * 2; // Çıktı: 11, 16 değil
?>

PHP önce 3 × 2 işlemini yapar (6 sonucunu alır), ardından 5 ekler. Eğer operatörler eşit önceliğe sahip olsaydı, soldan sağa hesaplama yapardı: 5 + 3 = 8, sonra 8 × 2 = 16. Ancak işleyiş bu şekilde değildir.

Öğrendiğiniz operatörler için en yüksekten en düşüğe işlem önceliği şöyledir:

ÖncelikOperatörler
En Yüksek** (üs alma)
Yüksek* / %
Düşük+ -

Varsayılan sırayı geçersiz kılmak için parantez kullanın. Parantez içindeki işlemler her zaman önce değerlendirilir:

<?php
echo (5 + 3) * 2;  // Çıktı: 16
echo 2 ** 3 * 2;   // Çıktı: 16 (8 * 2)
echo 2 ** (3 * 2); // Çıktı: 64 (2^6)
?>

Şüpheye düştüğünüzde, niyetinizi netleştirmek için parantez kullanın. Bu, kodunuzun okunmasını kolaylaştırır ve beklenmedik sonuçları önler.

challenge icon

Görev

Kolay

Girdiden üç sayı okuyun: a, b ve c.

Toplama işleminin çarpma işleminden önce gerçekleşmesini sağlamak için parantez kullanarak aşağıdaki ifadenin sonucunu hesaplayın ve yazdırın:

(a + b) * c ** 2

Bu şu anlama gelir: önce a ve b'yi toplayın, ardından bu toplamı c'nin 2. kuvveti ile çarpın.

Örnek:

Girdiler 2, 3 ve 4 ise, sonuç 80 olmalıdır çünkü:

  • İlk olarak, 2 + 3 = 5 işlemini yapın
  • Ardından, 4 ** 2 = 16 işlemini hesaplayın
  • Son olarak, 5 * 16 = 80 işlemini yapın

Kendin dene

<?php
// Girdiyi oku
$a = intval(fgets(STDIN));
$b = intval(fgets(STDIN));
$c = intval(fgets(STDIN));

// TODO: (a + b) * c ** 2 hesaplamak için kodunuzu aşağıya yazın

// Sonucu yazdır
echo $result;
?>
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler