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

  • このエントリーをはてなブックマークに追加
  • 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講師に応募する