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
// 入力を読み込む
$a = intval(fgets(STDIN));
$b = intval(fgets(STDIN));
$c = intval(fgets(STDIN));

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

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

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

基礎のすべてのレッスン