演算子と被演算子 – プログラミング入門
演算子(operator)、被演算子(operand)について説明していきます。
漢字や英語で表すと一見難しく見えますが、実はそうではありません。もう皆さん使いこなしているものです。
演算子
簡単に言うと、計算するための記号です。+ - * /
などのことです。ここまでで様々な演算子が登場したので、これらをまずは整理していきます。
記号 | 意味 |
---|---|
A = B | AにBを代入 |
A + B | AとBを足し算 |
A - B | AとBを引き算 |
A * B | AとBを掛け算 |
A / B | AとBを割り算 |
A % B | AをBで割った余り |
A += B | A+Bの結果をAに代入 (- * / も同様なので省略) |
A++ | A+1の結果をAに代入 |
A-- | A-1の結果をAに代入 |
A == B | AとBが等しいか |
A != B | AとBが異なるか |
A > B | AがBより大きいか |
A >= B | AがB以上か |
A < B | AがB未満か |
A <= B | AがB以下か |
A && B | AとBどちらもtrueか |
A || B | AとBどちらかがtrueか |
!A | Aがfalse ならtrue 、true ならfalse にする |
他にも演算子は色々ありますが、利用頻度が低いので省略しています。
Pythonのように、書き方が異なるものもあります。A && B
は、PythonならA and B
と書かなければなりません。
全てで共通しているのは、計算結果が返ってくるということです。代入では右辺の計算結果が左辺に代入されますが、これらのどの演算子を利用しても計算結果が取れるので代入できるということです。
代入で結果が帰ってくるかどうかはプログラミング言語次第です。Javascriptは結果が帰ってきます。C++だと返すかどうかを自分で実装できます。
また、演算子の左右に被演算子 (数字や変数) を持つ (A + B
のようなもの) のか、演算子と被演算子が1対1で持つ (!A
やA[x]
のようなもの) のか、といった違いもあります。
関数の引数を区切る,
や、関数を呼び出すときの()
、配列のインデックスを指定する[]
も演算子の仲間です。ただ、演算子ということを意識することはほぼありません。
演算子の優先順位
足し算より掛け算が先に行われるように、これらの演算子には優先順位があります。優先順位が高い組合せから順番に計算されていきます。
とはいえ、直感的なので意識することはほぼありません。
-
++
,--
ただし、後置なら計算結果は足し引きする前の値に、前置なら足し引き後の値になる -
!
, (-
,+
)
ここでの-
と+
は、足し算引き算ではなく、正数や負数を表すための使い方の場合。3 + -5
の-5
のような使い方 *
,/
,%
+
,-
<
,>=
,>
,>=
==
,!=
&&
||
=
,+=
,-=
,*=
,/=
同じ優先順位のものは、普通の四則演算と同じように式の左から計算されます。
特に重要な優先順位
すべて覚えるのは後でも構いませんし、意識しなくても自然に覚えます。重要な点を4つ紹介します。
!
と四則演算の優先順位は高い- 比較演算子は優先順位が低い
- 論理演算子(
&&
、||
)は更に低いが、この2つだと&&
のほうが優先される - 代入の優先順位は非常に低い
この4つを意識しましょう!
被演算子
計算式における変数や数値、文字列などのことです。要は計算に使われる値です。
x = 10
の場合、x
と10
が被演算子です。
被演算子は以上です!
なぜ基礎で解説するか
よくあるエラーとして、”… operand …”のように、エラーのキーワードとしてoperandやoperatorが出てくるためです。
このエラーは頻繁に見ます。もちろんそれ自体が原因ではなく、もっと手前のエラーが影響している場合もありますが、どんなものか知っておくとエラーの解決がスムーズになります。
まとめ
一部の演算子 (特に条件に利用するもの) の優先順位は重要です。!
は最優先される、&&
は||
より先に計算されるなどはどのプログラミング言語でも一致しているので、必ず把握しておきましょう!
