Menu
Coddy logo textTech

Operator Precedence

CoddyのPHPジャーニー「基礎」セクションの一部 — レッスン 20/71。

式に複数の演算子が含まれている場合、PHP は 演算子の優先順位 と呼ばれる特定の順序に従います。数学でも同じように、乗算と除算が加算と減算よりも先に実行されます。

<?php
echo 5 + 3 * 2; // 出力: 11、16 ではなく
?>

PHP はまず 3 × 2 を乗算(6 を得る)、次に 5 を加えます。演算子が同じ優先順位だった場合、左から右へ計算します:5 + 3 = 8、次に 8 × 2 = 16 となります。しかし、そうではありません。

学習した演算子の優先順位を、最高から最低の順に示します:

優先順位演算子
最高** (べき乗)
* / %
+ -

デフォルトの順序を上書きするには、括弧を使用します。括弧内の演算は常に最初に評価されます:

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

迷ったときは、意図を明確にするために括弧を使用してください。コードを読みやすくし、予期しない結果を防ぎます。

challenge icon

チャレンジ

簡単

入力から3つの数値を読み取ります:ab、およびc

以下の式の結果を計算し出力します。加算が乗算の前に実行されるように括弧を使用してください:

(a + b) * c ** 2

これは:ab を最初に加算し、その合計を c の 2 乗で乗算することを意味します。

例:

入力が 234 の場合、出力は 80 であるべきです。理由は以下の通りです:

  • まず、2 + 3 = 5 を計算します
  • 次に、4 ** 2 = 16 を計算します
  • 最後に、5 * 16 = 80 を計算します

チートシート

PHP は、複数の演算子を含む式を評価する際に 演算子の優先順位 規則に従います:

優先度演算子
最高** (べき乗)
* / %
+ -
<?php
echo 5 + 3 * 2; // Outputs: 11 (multiplication first)
?>

デフォルトの順序を上書きするために 括弧 を使用します。括弧内の演算は最初に評価されます:

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

自分で試してみよう

<?php
// 入力を読み込む
$a = intval(fgets(STDIN));
$b = intval(fgets(STDIN));
$c = intval(fgets(STDIN));

// TODO: 下にコードを記述して (a + b) * c ** 2 を計算する

// 結果を出力
echo $result;
?>
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン