今回は「演算子」について説明します。
この「演算子」を習得するとコンピューターに数値計算をさせられるようになります。
目次
演算子
算術演算子と式
▶算術演算子を用いた計算
System . out . println ( 2 + 3 ) ;
System.out.printlnは単純に出力するための記述です。
( )の中の2+3が出力の内容となります。
変数や文字列とは違って計算した結果を出力する記述となります。出力される時点で計算をしてから出力するというプログラムとなります。
「演算子」とはどういう演算をするかを示したものです。
演算に使う数字のことをオペランドといいます。
算術演算子と優先順位
演算子 | 演算の内容 | 説明 | 使用例 |
---|---|---|---|
+ | 加算(足し算) | 左辺と右辺を足します | 2+3(式の値は5) |
- | 減算(引き算) | 左辺から右辺を引きます | 5-3(式の値は2) |
* | 乗算(掛け算) | 左辺と右辺を掛けます | 2×3(式の値は6) |
/ | 除算(割り算) | 左辺を右辺で割ります | 6÷3(式の値は2) |
% | 剰余 | 左辺を右辺で割った余りを求めます | 7%2(式の値は1) |
▶数学と同じように、加算と減算(+,-)より乗算と除算(*,/)が優先される。
System . out . println ( 6 + 3 / 3 ) ; // 7
System . out . println ( ( 6 + 3) / 3 ) ; // 3
演習問題
次のプログラムコードの赤字部分を変更して、様々な計算をしてみましょう。
例 : 加算,減算,乗算,除算,剰余
class Calc {
public static void main ( String [ ] args ) {
System . out . println ( 2 + 3 ) ;
}
}
解答
class Example {
public static void main ( String [ ] args ) {
System . out . println ( 2 + 3 ) ;
System . out . println ( 2 – 3 ) ;
System . out . println ( 2 * 3 ) ;
System . out . println ( 2 / 3 ) ;
System . out . println ( 2 % 3 ) ;
}
}
出力結果
5
-1
6
0
2
下から2番目の除算(2÷3)の値が0になりました。
これは答えが0.666666…となるため小数点以下が切り捨てられて0になっています。
変数を含む算術演算子
実際のプログラムを作成するときは様々な変数を使って演算することが多いです。
変数を使う演算は次のようなものがあります。
変数に関してはこちらを参考にしてください。
int i = 6
int j = i * 2 ;
System . out . println ( j ) ; // 12
int型の変数iを宣言して、同時に10を代入します。
続けて変数iとは別にint型の変数jを宣言して、同時に代入します。
代入の内容はint型のiという箱の中身を2倍にして代入します。
出力はjの中身を出力します。
int i = 10
i = i + 2 ;
System . out . println ( i ) ; // 12
int型のiという箱に10を代入します。
今度は別に箱を用意するのではなく、現時点でのiの中身に2を足してもう一度iに代入しなおします。
参照はiを参照します。
上書きすると考えてかまいません。
int i = 6
i += 2 ;
System . out . println ( i ) ; // 8
i = i + 2 ;
これを短縮して書くと i += 2 ; となります。
ここで気を付けなければならないのは+と=の順番です。
順番を変えてしまうとプログラムの挙動も変わってしまいます。
なので必ず+=の順番で記述するようにしてください。
演算子 | 演算の内容 | 説明 | 使用例 |
---|---|---|---|
+= | 加算代入 | 左辺の変数の値と右辺の 値を足した値を左辺の変数 に代入します |
a += 2 ; (変数 a の値は2増えます。 a = a + 2 ; と同じです。) |
-= | 減算代入 | 左辺の変数の値から右辺の 値を引いた値を左辺の変数 に代入します |
a -= 2 ; (変数 a の値は2減ります。 a = a – 2 ; と同じです。) |
*= | 乗算代入 | 左辺の変数の値に右辺の 値を掛けた値を左辺の変数 に代入します |
a *= 2 ; (変数 a の値は2倍になります。 a = a * 2 ; と同じです。) |
/= | 除算代入 | 左辺の変数の値を右辺の 値で割った値を左辺の変数 に代入します |
a /= 2 ; (変数 a の値は2分の1になります。 a = a / 2 ; と同じです。) |
%= | 剰余代入 | 左辺の変数の値を右辺の 値で割った余りを左辺の変数 に代入します |
a %= 3 ; (変数 a の値はそれを3で割った 余りになります。 a = a % 3 ; と同じです。) |
++ | インクリメント | 左辺の変数の値を 1増やします |
a ++ ; (変数 a の値は1増えます。 a = a + 1 ; と同じです。) |
-- | デクリメント | 左辺の変数の値を 1減らします |
a — ; (変数 a の値は1減ります。 a = a – 1 ; と同じです。) |
練習問題(短縮表現)
次の命令文を短い表現に書き換えましょう。
- a = a + 5 ;
- b = b – 6 ;
- c = c * a ;
- d = d / 3 ;
- e = e % 2 ;
- f = f + 1 ;
- g = g – 1 ;
解答
- a += 5 ;
- b -= 6 ;
- c *= a ;
- d /= 3 ;
- e %= 2 ;
- f ++ ;
- g — ;
演習問題
class Example2 {
public static void main ( String [ ] args ) {
int i ;
i = 11;
i ++ ;
i /= 2;
System . out . println ( ” iの値は “ + i ) ;
int j ;
j = i * i ;
System . out . println ( ” jの値は “ + j ) ;
}
}
int型の iという変数を用意してその中に11という数字を代入します。変数に関してはこちらを参考にしてください。
i ++ ; で今の i の値に1を足します。
それを2で割ってiに代入しなおします。(除算代入)
出力の内容は文字列を” ”で囲みます。「+」というのは数学の+(プラス)ではなく連結という意味です。
文字列と変数を連結して i の中身を参照します。
この時点で i の中身はどうなっているかというと、まず11に1を足して12になります。
さらにこの12を2で割ります。
この値をiに代入しなおします。
つまり12÷2で6になっているはずです。
次に整数型の変数 j を用意して、その中にこの時点での i の二乗を代入します。
6 × 6つまり36をjに代入しなおします。
実行結果
i の値は 6
j の値は 36
まとめ
演算子は計算だけでなくアプリを作る場合などにもよく利用します。
自分なりに様々なプログラムを作ってみて、たくさん練習して慣れておきましょう。