基本だけど注意が必要!演算子とは

  • このエントリーをはてなブックマークに追加
  • Pocket

From:リカレントテクノロジー 高坂一城
新宿本校にて

ソフトウェア開発をする際、
ソースコード上で「演算(計算)」をすることが
しばしばあります。

例えば、
ある品物の消費税込の価格を計算するには、

税抜き価格 * 1.08 ("*"は掛け算)

といった演算をする必要があります。

上記の例で
"*"という演算(ここでは掛け算)をするための記号を
「演算子」と呼びます。

掛け算以外にも、
一般的なプログラミング言語には、

+:足し算
-:引き算
/:割り算

といった演算子が存在します。

複雑な演算

先ほどの例では、
演算子が一つしかありませんでしたが、

4 + 8 / 4 * 2 - 6

このように複数の演算子が存在する場合、
どのように演算されるのでしょうか。

例えば、
左側から順番に演算をした場合、

答えは、「0」になります。

しかし、「0」という答えは正しくありません
(正しくは2となります)。

つまり今回の例の場合、
左から順番に演算をしてはいけない、
ということになります。

では、
どういう順番で演算されるのでしょうか。

演算の順番

演算子には、
「優先順位」と「結合規則」という
ルールがあります。

このルールに従って演算が行われます。

優先順位

優先順位は、
どの演算を先に行うのかを決定するために
使われます。

一般的なプログラミング言語では、
以下のようになります。

--------------------------------
優先順位 演算子
--------------------------------
  高   * /
  低   + -
--------------------------------

"*"と"/"は"+"と"-"よりも
優先順位が高いため、先に演算されます。

例えば、

3 + 5 * 4

の場合、

「5 * 4」が先に行われ、
その結果(20)が「3」と足し算される
このようになります。

結合規則

結合規則とは、
優先順位の同じ演算子が複数存在する場合、
どの演算を先に行うのかを決定するために
使われます。

一般的なプログラミング言語では、
以下のようになります。

--------------------------------
結合規則 演算子
--------------------------------
  左   * /
  左   + -
--------------------------------

"*"と"/"は優先順位が等しいため、
同時に存在する場合は左側から順に
演算されることを意味します。

"+"と"-"の場合も同様です。

例えば、

8 / 4 * 2

の場合、

「8 / 4」が先に行われ、
その結果(2)が「2」と掛け算される
このようになります。

演算子の間違いによる
バグは見つけにくい

このように、
ソースコード上で演算を実施する場合、
演算子の「優先順位」と「結合規則」を
常に意識する必要があります。

また、ここでは
4種類の演算子しか取り上げていませんが、
一般的なプログラミング言語では、
「30種類」程度の演算子が存在します。

全ての演算子に
「優先順位」と「結合規則」が
定められています。

kohsaka

さらに、演算子の記述順序を間違えても、
(文法的な)エラーにはなりません。

そのため、演算子の記述間違いによる
バグ(不具合)を引き起こさないように

「優先順位」と「結合規則」には
注意をしてみてください。

-------------------------------------
PS.Javaを基礎からしっかり学びたいなら、
社会人のためのプログラミングスクールで!!
-------------------------------------

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

SNSでもご購読できます。

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リカレントテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する