プログラミングでは当然計算を行います。
数学のような計算もあれば、論理演算もあります。
本項目では一般的に使われる演算を紹介していきます。
数値の四則演算
演算 | 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 = 8
a * b = 20
a / b = 5.0
演算の注意点
以下のような場合、通常の計算とは違った結果が出てきます。
試しに以下を実行してみてください。
int a = 10; int b = 3; System.out.println("a / b = " + (a/b));
実行結果は以下のようになります。
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) ) );
共に実行結果は以下になります。
型変換について
型変換には二つあります。
- 明示的型変換
- 暗黙的型変換
先ほどのように明示的型変換(キャスト)は以下のように行います。
計算の際に一時的に型を一時的に変換したい時などに使われます。
文字列の演算
文字列の演算は基本的に「+」のみです。
これは文字列の連結を行います。
以下は例です。文字が連結されているのがわかると思います。
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 );
この実行結果は以下になります。ちょっとおかしなことになっていますね。
これは暗黙的な型変換で、プログラムを実行する(コンパイル)時に型が勝手に変わってしまうことです。
文字列と数値を「+」で繋げると、一時的に数値が文字になります。
電話番号などで数字を連結させるならいいですが、計算の場合はあまり良くないですよね。
この場合、数値の部分はかっこで囲うことで、数字の部分は数式としての「+」、その後に文字列としての「+」を行うようにできます。
int x = 100; int y = 500; System.out.println("x + y = " + (x + y) );
実行結果