演算

プログラミングでは当然計算を行います。
数学のような計算もあれば、論理演算もあります。
本項目では一般的に使われる演算を紹介していきます。

数値の四則演算

演算 javaでの表記
足し算 +
引き算
掛け算 *
割り算 /
int a = 10;
int b = 2;

int sum = a + b;
System.out.println("a + b = " + sum);

int subtraction = a - b;
System.out.println("a - b = " + subtraction);

int multi = a * b;
System.out.println("a * b = " + multi);

double devision = a / b;
System.out.println("a / b = " + devision);

実行結果

a + b = 12
a – b = 8
a * b = 20
a / b = 5.0

演算の注意点

以下のような場合、通常の計算とは違った結果が出てきます。
試しに以下を実行してみてください。

int a = 10;
int b = 3;

System.out.println("a / b = " + (a/b));

実行結果は以下のようになります。

a / b = 3

10÷3=3
これはおかしいですね。
理由は以下です。
同じ型同士の変数の計算の結果は、答えも計算に使われた型になる
今回の場合、int型同士の計算、つまり整数同士の計算のため、答えも整数になります。
そのため、答えも整数型になるので、小数部分が取り除かれたのです。

正しい答えを得るにはもう一つ。
型が異なる変数の計算の結果は、扱える範囲が広い変数の型になるというルールを使います。
詳しくは変数宣言を参照。
そのため、少数の答えを得るには、どちらかを小数として計算しなくてはなりません。
いくつか方法はあります。

一方をdouble型で宣言して計算する。

int a = 10;
double b = 3;

System.out.println("a / b = " + (a/b));

計算する時、一時的に型変換する

int a = 10;
int b = 3;

System.out.println( "a / b = " + ( a / (double)(b) ) );

共に実行結果は以下になります。

a / b = 3.3333333333333335

型変換について

型変換には二つあります。

  • 明示的型変換
  • 暗黙的型変換

先ほどのように明示的型変換(キャスト)は以下のように行います。

(変換したい型名)(型変換したい変数)

計算の際に一時的に型を一時的に変換したい時などに使われます。

文字列の演算

文字列の演算は基本的に「+」のみです。
これは文字列の連結を行います。
以下は例です。文字が連結されているのがわかると思います。

String str1 = "微分積分";
String str2 = "いい気分";

System.out.println("str1+str2:" + str1+str2 );

また、ここで暗黙の型変換の話にもなりますが、int型などの数値も同様に連結できます。

int x = 100;
int y = 500;

System.out.println("x + y = " + x + y );

この実行結果は以下になります。ちょっとおかしなことになっていますね。

x + y = 100500

これは暗黙的な型変換で、プログラムを実行する(コンパイル)時に型が勝手に変わってしまうことです。
文字列と数値を「+」で繋げると、一時的に数値が文字になります。
電話番号などで数字を連結させるならいいですが、計算の場合はあまり良くないですよね。
この場合、数値の部分はかっこで囲うことで、数字の部分は数式としての「+」、その後に文字列としての「+」を行うようにできます。

int x = 100;
int y = 500;

System.out.println("x + y = " + (x + y) );

実行結果

x + y = 600