第8章 プログラムで計算してみよう

8.1 計算の基本

プログラムで計算を行う場合の基本は、小学校で学んだ四則演算(足す、引く、掛ける、割る)と同じになります。プログラミング独特の記述方法に気をつければ、簡単に行えます。

8.1.1 演算子について

PHPでは「演算子(えんざんし)」と呼ばれる様々な計算、処理、操作を行えるものが用意されています。
5章で学習した、変数に値を入れるための操作「=」は「代入演算子」、本章で学習する足し算、掛け算などの計算を行う「算術演算子」や代入操作を簡単に記述できる「複合演算子」などがあります。次の章でも「比較演算子」、「論理演算子」などを学習していきます。
プログラムは様々な演算子を上手に利用して処理を行わせていきますが、全てを1度に覚える必要はありません。少しずつ使いながらゆっくりと覚えていきましょう。

8.1.2 四則演算を行うための算術演算子

加減乗除(+-×÷)の四則演算をプログラムで行いたい場合、計算に用いる記号が数学とは一部違います。数学の計算には無い、特殊な計算が行える演算子も用意されています。
8.1.1節で前述しましたが、プログラムの計算を行う場合の記号を「算術演算子」と呼びます。プログラムで使用される最も基本となる算術演算子の種類を、以下の表8.1.1に示します。

表 8.1.1: 算術演算子

乗算と除算は数学の世界では「×」「÷」ですが、プログラミングでは「*」と「/」を使用します。また除算をした余りの数値を求めたい場合に、プログラムでは「%」を利用すれば行えるようになっています。

凡例:算術演算子で計算を行う

算術演算子を使用して四則演算を行うプログラム

算術演算子を利用して様々な計算を行い、その結果のデータをWebブラウザに表示して確認してみましょう。

ソース・フォルダー: myproj_intro/ch08
パッケージ: calculation.php
アクセスURL:http://localhost/myproj_intro/ch08/calculation.php

calculation.php

実行結果

解説

2~6行目で各算術演算子を使って計算を行い、その計算結果を変数へ代入しています。
これまでの学習では代入演算子「=」は数値、文字、変数の値をそのまま代入してきましたが、今回のプログラムのように計算した結果の値を代入することもできます。代入演算子「=」の右側の計算部分を先に行うのもポイントになります。


図 8.1.1:算術演算子を使った計算結果を変数へ代入

14~18行目で計算結果の各変数の値を画面に表示しています。実行結果からも分かるように、正しく計算が行われた結果が変数に代入されているのが確認できます。

ポイント
  • プログラムで計算を行いたい場合は、算術演算子を利用する。
  • 割り算の場合0で割ることができないので、絶対に行わないように処理に注意する。
ポイント

プログラムの世界では「10 / 0」のように「0」で割ることができません。もしも0で割り算を行ってしまうと画面にエラーメッセージが表示されてしまいますので、プログラムでは絶対に行わないように注意してください。
警告文例)Warning: Division by zero in ファイルの場所 on line エラーの行番号

8.1.3 算術演算子の優先順位を知っておこう

算術演算子の処理を行う順番には優先順位が存在します。優先順位は数学の考え方と同じになります。

計算の優先順位

括弧の中から先に計算し、次に割り算と掛け算を行うというルールは、プログラムでも変わりません。また、同じ優先順位のもの同士の計算の場合、「左から順」に処理される仕組みも同じです。


図 8.1.2: 計算の優先順位

算術演算子の優先順位の確認を行うプログラム

算術演算子の優先順位が数学の世界の優先順位と同じであることを、計算結果のデータをWebブラウザに表示して確認してみましょう。

ソース・フォルダー: myproj_intro/ch08
パッケージ: priorityCheck.php
アクセスURL:http://localhost/myproj_intro/ch08/priorityCheck.php

priorityCheck.php

実行結果

解説

2行目で掛け算の結果の50と、7の足し算の結果「57」の値を変数$data1に代入しています。


図 8.1.3: $data1の計算結果

3行目の計算では16行目と違い「( )」を使って、「*」よりも「+」を優先できるようにし、足し算結果12と10の掛け算結果を変数$data2に代入しています。


図 8.1.4: $data2の計算結果

実行結果からも分かるように、括弧を使うと掛け算よりも足し算の方が優先されることが確認できました。

ポイント
  • 算術演算子には優先順位があり、プログラムはそれに従い処理を行う。

NEXT>> 8.2 変数を使って計算をしよう