計算の基本

5.1 計算の基本

 この章では、プログラミングにおける「計算」について説明していきます。まず始めに、最も基本的な四則演算についてみていきましょう。四則演算とは足し算、引き算、掛け算、割り算の総称です。「加減乗除」とも言います。どれも算数で習った簡単なものばかりです。

5.1.1 算術演算子と四則演算

 加減乗除(+-×÷)の四則演算は算数で勉強しましたが、プログラミングの世界で四則演算に使われる記号の一部は算数とは異なり、また、これまであまり使わなかったような記号も使います。
 プログラムの演算に使用する記号のことを算術演算子と呼びますが、プログラミングで使用するもっとも基本的な算術演算子を下の表 5.1.1 に示しています。

表 5.1.1 : 算術演算子


 乗算(掛け算)と除算(割り算)は算数の世界では「×」「÷」で表現しますが、プログラミングでは「*」と「/」を使用します。また、余りを求める場合は「%」演算子を使います。

5.1.2 算術演算子の優先順位

 算術演算子を使った四則演算にも計算の優先順位があります。優先順位の考え方は、算数の場合と同じです。

計算の優先順位
 括弧の中から先に計算し、次に割り算と掛け算を行うというルールは、算数と同じです。

図 5.1.1 : 計算の優先順位


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

 変数同士での加減乗除を行い、出力結果を確認します。

① ソース・フォルダー :myproj_intro/src
② パッケージ :jp.co.f1.intro.ch5
③ 名前 :ArithmeticOperator
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる

➢ ArithmeticOperator.java

1package jp.co.f1.intro.ch5;
2     
3public class ArithmeticOperator {
4     
5   public static void main(String[] args) {
6     
7      //計算用の値を管理する変数を宣言し、値を代入
8      int a = 5;
9      int b = 3;
10     
11      //回答を管理する変数
12      int answer;
13      
14      System.out.print("a = ");
15      System.out.println(a);
16     
17      System.out.print("b = ");
18      System.out.println(b);
19     
20      //足し算
21      answer = a + b;
22      System.out.print("a + b : ");
23      System.out.println(answer);
24     
25      //引き算
26      answer = a - b;
27      System.out.print("a - b : ");
28      System.out.println(answer);
29      
30      //掛け算
31      answer = a * b;
32      System.out.print("a * b : ");
33      System.out.println(answer);
34     
35      //割り算
36      answer = a / b;
37      System.out.print("a / b : ");
38      System.out.println(answer);
39     
40      //余りを求める
41      answer = a % b;
42      System.out.print("a % b : ");
43      System.out.println(answer);
44     
45   }
46}

実行結果

解説

 8~9 行目は、int 型の変数 a と int 型の変数 b を宣言し、それぞれに値を代入しています。
   8: int a = 5;
   9: int b = 3;

 12 行目では計算結果を管理する変数 answer を宣言しています。ここでは初期化は行なっていません。
   12: int answer;

 14~18 行目では、変数 a と変数 b の値を表示させ、代入されている値を確認しています。
   14: System.out.print("a = ");
   15: System.out.println(a);
   16:
   17: System.out.print("b = ");
   18: System.out.println(b);

 21 行目は、変数 answer に変数 a と変数 b の加算結果を代入しています。変数 a の値は 5、変数 b の値は 3 なので、a + b は 5 + 3 を行っていることと同じです。
   21: answer = a + b;

 変数 answer を表示します。変数 answer には、5+3 の解である 8 が代入されています。
   23: System.out.println(answer);

 Java プログラミングにおける割り算は特殊です。5 を 3 で割った答えは 1.666666666666667 になるはずですが、Java では「1」になります。これは、int 型同士の計算結果は int 型になるので、余りの小数点以下は切り捨てられるからです。
   36: answer = a / b;
   37: System.out.print("a / b : ");
   38: System.out.println(answer);

 余りを求める場合は%演算子を使って演算を行います。Java では、%は除算ではなく余りを求めるための演算子であることをしっかりと覚えておきましょう。5 を 3 で割ると、その余りは 2 になります。
   41: answer = a % b;
   42: System.out.print("a % b : ");
   43: System.out.println(answer);

5.1.4 算術演算子の優先順位を確認するプログラム

 算術演算子を使った四則演算を行って、算術演算子の優先順位を確認してみましょう。四則演算の優先順位は、算数の場合と同じです。

① ソース・フォルダー :myproj_intro/src
② パッケージ :jp.co.f1.intro.ch5
③ 名前 :PriorityCheck
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる

➢ PriorityCheck.java

1package jp.co.f1.intro.ch5;
2     
3public class PriorityCheck {
4     
5    public static void main(String[] args) {
6     
7       //計算用の値を管理する変数を宣言し、値を代入
8       int a = 1;
9       int b = 2;
10       int c = 3;
11     
12       //回答を管理する変数を宣言
13       int answer;
14     
15       System.out.print("a = ");
16       System.out.println(a);
17     
18       System.out.print("b = ");
19       System.out.println(b);
20     
21       System.out.print("c = ");
22       System.out.println(c);
23     
24       answer = a + b * c;
25       System.out.print("a + b * c = ");
26       System.out.println(answer);
27     
28       answer = (a + b) * c;
29       System.out.print("(a + b) * c = ");
30       System.out.println(answer);
31     
32   }
33}

実行結果

解説

 8~10 行目で、計算に使用する int 型の変数を宣言すると同時に値を代入しています。このように変数の宣言と同時に値を代入することを変数の初期化といいます。
   8: int a = 1;
   9: int b = 2;
   10: int c = 3;

 13 行目で答えを入れるための変数 answer を宣言します。
   13: int answer;

 24 行目で加算と乗算を含む計算を行い、その答えを代入します。加算より乗算のほうがが優先されるので、変数 answer の値は「7」になります。
   24: answer = a + b * c;
   25: System.out.print("a + b * c = ");
   26: System.out.println(answer);

図 5.1.2 : 変数の加算と乗算


 28 行目では、先ほどの 24 行目の計算の加算部分に括弧を付けて、その計算結果を変数 answer に代入しています。括弧を付けたことによって、加算が先に計算されるので、答えは「9」になります。
   28: answer = (a + b) * c;
   29: System.out.print("(a + b) * c = ");
   30: System.out.println(answer);

図 5.1.3 : 変数の加算と乗算


5.1.5 変数を使った式を代入するプログラム

 変数に、その変数と別の値を計算した結果を代入する。

① ソース・フォルダー :myproj_intro/src
② パッケージ :jp.co.f1.intro.ch5
③ 名前 :AssignmentOperator1
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる

➢ AssignmentOperator1.java

1package jp.co.f1.intro.ch5;
2     
3public class AssignmentOperator1 {
4     
5    public static void main(String[] args) {
6     
7       //加算用の値を管理する変数
8       int plus = 10;
9       plus = plus + 5;
10       System.out.print("plus = plus + 5 の結果、変数 plus の値は、");
11       System.out.println(plus);
12     
13       //減算用の値を管理する変数
14       int minus = 10;
15       minus = minus - 5;
16       System.out.print("minus = minus - 5 の結果、変数 minus の値は、");
17       System.out.println(minus);
18     
19       //乗算用の値を管理する変数
20       int multiply = 10;
21       multiply = multiply * 5;
22       System.out.print("multiply = multiply * 5 の結果、変数 multiply の値は、");
23       System.out.println(multiply);
24     
25       //除算用の値を管理する変数
26       int divide = 10;
27       divide = divide / 5;
28       System.out.print("divide = divide / 5 の結果、変数 divide の値は、");
29       System.out.println(divide);
30     
31    }
32}

実行結果

解説

 9 行目では、左辺の変数 plus に、「右辺の変数 plus と別の値の計算結果」を代入しています。右辺の変数 plusの値である 10 と 5 との加算結果を左辺の変数 plus に代入すると、その左辺の変数 plus の値は 15 になります。
   8: int plus = 10;
   9: plus = plus + 5;

図 5.1.4 : 変数を使った式の計算結果を変数に代入する



NEXT>> 5.2 型の変換

f