Menu
Coddy logo textTech

演算子の優先順位

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

チャレンジ

簡単

Read 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腕試し

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

基礎のすべてのレッスン

自分で練習してみよう: PHPオンラインコンパイラ