【Java-10】計算の文⑤演算子2

初心者向けJava講座

※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

こんぶ
こんぶ

こんにちは。こんぶです。

今日も、演算子について学んでいきましょう!

私の自己紹介等は、こちらからどうぞ。

また、Javaの学習を最初から進めていきたい方は、Java-1から見てみてくださいね。

複合代入演算子

前回説明した代入演算子の種類で複雑なものを「複合代入演算子」といいます。代入演算子は「=」でしたが、複合代入演算子は記号がセットになります。

代表的な複合代入演算子を6つ紹介します。(※優先順位の数字は、15段階で、1が最優先です)

+=」演算子の機能は「左辺と右辺を加算して左辺に代入」で、Javaの優先順位は「15」で、評価の方向は「左←右」です。※算術演算子の「+」使用

-=」演算子の機能は「左辺から右辺を減算し左辺に代入」で、Javaの優先順位は「15」で、評価の方向は「左←右」です。

*=」演算子の機能は「左辺と右辺を乗算し左辺に代入」で、Javaの優先順位は「15」で、評価の方向は「左←右」です。

/=」演算子の機能は「左辺と右辺を除算し、左辺に代入」で、Javaの優先順位は「15」で、評価の方向は「左←右」です。

%=」演算子の機能は「左辺と右辺を除算し、その余りを左辺に代入」で、Javaの優先順位は「15」で、評価の方向は「左←右」です。

+=」演算子の機能は「左辺の後に右辺を連結して左辺に代入」で、Javaの優先順位は「15」で、評価の方向は「左←右」です。※文字列結合演算子の「+」使用

代入演算子も複合代入演算子も「=」記号が入りますが、「=」記号が入るものはJavaの優先順位は「15」で、評価の方向は「左右」になるので、演算子と機能の違いを特に覚えておきましょう!

優先順位が「15」で最後になるので、代入は最後に行われることになります。

例えば、次のように使用します。

「+=」演算子(算術演算子「+」使用)の例:「a += 5;」のように使用し、意味としては「a = a + 5;」と同じです。

「+=」演算子(文字列結合演算子「+」使用)の例:「a += “こんぶ” ;」のように使用し、意味としては「a = a + “こんぶ” ;」と同じです。

インクリメント演算子・デクリメント演算子

変数の値に1だけ足したり引いたりする場合には、別の記述方法もあります。

値を1増やす」演算子を「インクリメント演算子」といい、記号は「++」で、Javaの優先順位は「1」、評価の方向は「左右」です。

値を1減らす」演算子を「デクリメント演算子」といい、記号は「– –」で、Javaの優先順位は「1」、評価の方向は「左右」です。

例えば、「a++;」のように使用し、意味としては「a = a + 1;」や「a += 1;」と同じです。

インクリメント演算子とデクリメント演算子は、左右両方にはオペランドを持っていないので、1つしかオペランドを持ちません。オペランドを1つしか持っていない演算子を「単項演算子」ともいいます。

便利ではあるのですが、注意点があります。

基本的には「++a」と「a++」(もしくは「- -a」と「a- -」)は同じなのですが、他の演算子と一緒に利用する場合、違う結果になってしまうことがあります。

次の例を見ながら説明していきます。

++a」は前置インクリメントともいい、先に1増やしてから他の処理(代入や表示など)を行いますが、「a++」は後置インクリメントともいい、先に他の処理(代入や表示など)を行ってから1増やすため、結果が異なってしまいます。

ちなみに「- -a」は前置デクリメント、「a- -」は後置デクリメントともいいます。

他の演算子と一緒に利用すると、1増やす(もしくは1減らす)タイミングが変わってしまい、バグの原因にもなりやすいため、できるだけ単独で使用するようにしましょう。(例:「a++;」)

今回のまとめ

★「+=」演算子の機能は「左辺と右辺を加算して左辺に代入」※算術演算子の「+」使用

★「-=」演算子の機能は「左辺から右辺を減算し左辺に代入

★「*=」演算子の機能は「左辺と右辺を乗算し左辺に代入

★「/=」演算子の機能は「左辺と右辺を除算し、左辺に代入

★「%=」演算子の機能は「左辺と右辺を除算し、その余りを左辺に代入

★「+=」演算子の機能は「左辺の後に右辺を連結して左辺に代入」※文字列結合演算子の「+」使用

★「インクリメント演算子」の機能は「値を1増やす」で、記号は「++」、Javaの優先順位は「1」、評価の方向は「左右」

★「デクリメント演算子」の機能は「値を1減らす」で、記号は「– –」、Javaの優先順位は「1」、評価の方向は「左右」

★インクリメント演算子とデクリメント演算子は、他の演算子と一緒に利用すると1増やす(もしくは1減らす)タイミングが変わってしまうため、単独で使用する

複合代入演算子:代入演算子の種類で、複雑なもの

単項演算子:オペランドを1つしか持っていない演算子

インクリメント演算子:値を1増やす演算子

デクリメント演算子:値を1減らす演算子

演算子の種類が多いので大変だったと思いますが、お疲れさまでした。

インクリメント演算子とデクリメント演算子の1増やす(もしくは1減らす)タイミングは、こんぶも理解するのに時間がかかりました。みなさんも1度では分からない部分もあると思いますので、何度も復習して理解していきましょう!

次回は、型変換の仕組みについて説明していこうと思います。

今回の内容のチャレンジ問題はこちらです→チャレンジ問題【Java-10】

次の内容に進む方はこちらです→【Java-11】計算の文⑥型変換

それでは、こんぶはじゃ~

コメント

タイトルとURLをコピーしました