【本サイトではGoogleアドセンス、または、アフィリエイト広告を利用しています。】
プログラムを書く時は、必ず計算式が出てきます。
変数に値を代入したり、大きさを比較することもあります。
そこで登場するのが演算子です。
なんだか難しそうな名前ですが、そんなことは全くありません。
ぜひここでその誤解を解いていってください!
演算子とは?
演算子とは、値同士を計算したり、比較、代入など行う時に使う記号のことです。
Javaにもいろいろな種類の演算子があります。
アルゴリズムを実際にプログラムとして表現する上で必要なものになるので、
あせらず1つ1つじっくり覚えていきましょう!
今回は、プログラムを書く上で最もよく使う、
計算、文字列の結合の演算子をサンプルコードとあわせて紹介します!
足し算、引き算、掛け算、割り算をする
まずは、計算の基本、四則演算の方法です。
掛け算、割り算は、算数で使う記号と違うので気をつけましょう。
サンプルコードは以下です。
計算結果をコンソールに出力するように書いています。
// 計算用
double a = 6;
double b = 2;
// 計算結果
double result;
// 足し算
result = a + b;
System.out.println(result);
// 引き算
result = a - b;
System.out.println(result);
// 掛け算
result = a * b;
System.out.println(result);
// 割り算
result = a / b;
System.out.println(result);
実行結果は以下です。
8.0
4.0
12.0
3.0
ここでひとつ注意点です。
結果が小数表示になっているのは、変数にdouble型を使っている為です。
例えば、int型で変数を宣言した場合、結果に小数点は含まれないようになります。
しかし、a=8、b=5とした場合、割り算の結果は本来であれば1.6になりますが、
int型として整数表記をする為に、resultには小数点以下を切り捨てした「1」が入り、
コンソールにもそのまま「1」が出力されてしまいます。
このように、計算結果が、変数の型によって変わってくるので扱いに注意しましょう!
余りを計算する
演算子を使えば、割り算の余りを簡単に計算することもできます。
余りを計算する時は「%」(パーセント)の記号を使います。
サンプルコードは以下です。
// 計算用
int a = 6;
int b = 4;
// 計算結果
int result;
// 余りを計算
result = a % b;
System.out.println(result);
実行結果は以下です。
2
四則演算だけで余りを出すプログラムを書くのは意外と難しいです。
余裕があればチャレンジしてみましょう!
インクリメントとデクリメント
インクリメント、デクリメントって言葉聞きなれないですよね。
プログラムでよく使われる言葉です。名前のわりに意味は簡単です。
インクリメントとは、値を1つ増やすことです。
デクリメントとは、値を1つ減らすことです。
サンプルコードは以下です。
int a = 0;
// インクリメント
a++;
System.out.println(a);
// デクリメント
a--;
System.out.println(a);
インクリメントする時は「++」、デクリメントする時は「–」と書きます。
実行結果は以下です。
1
0
変数aには最初「0」が入っているので、
インクリメントして、最初の出力は「1」
デクリメントして、次の出力は「0」になります。
あれ?
これって足し算、引き算と何が違うの?
そうなんです。意味としてはまったく同じなんです。
でも、使い勝手を考えると、
インクリメント、デクリメントの方が少し使いやすい部分があります。
例えば、先ほどのサンプルコードのインクリメント、デクリメントを、
それぞれ足し算、引き算に差し替えても結果は同じです。
int a = 0;
// インクリメント → 足し算
a = a + 1;
System.out.println(a);
// デクリメント → 引き算
a = a - 1;
System.out.println(a);
では何が違うのか?
答えは以下です。
- インクリメント、デクリメントの方が、処理速度がほんの少し速い。
- インクリメント、デクリメントの方が、プログラムを一目見て理解しやすい。
- 前置、後置ができる。
特に、3つ目が大きな違いです。
インクリメント・デクリメントの前置と後置の違い
前置とは、演算子を変数の前に付加することです。
後置とは、演算子を変数の後ろに付加することです。
まずは、以下のサンプルコードを見てください。
int a = 0;
// インクリメント(前置)
System.out.println(++a);
// インクリメント(後置)
System.out.println(a++);
// デクリメント(前置)
System.out.println(--a);
// デクリメント(後置)
System.out.println(a--);
それぞれ、演算子を前置、後置をするとこのようになります。
さて、これを実行するとどうなるでしょう?
素直に計算すると、「1 → 2 → 1 → 0」
と出力されそうですが、違うんです!
実行結果は以下です。
1
1
1
1
出ました!オール「1」!
これが成績だったらお母さんに怒られるところです。
なぜこんな結果になるんでしょう?
それは、前置、後置の特徴にあります。
前置は、インクリメントした後に処理を行います。
後置は、処理を行った後にインクリメントします。
つまり、このように処理が動きます。
int a = 0;
// インクリメント(前置)
System.out.println(++a);
⇒ 現在のaの値「0」に対して、
先にインクリメントをしてから出力するので結果は「1」
// インクリメント(後置)
System.out.println(a++);
⇒ 現在のaの値「1」に対して、先に出力するので結果は「1」
// デクリメント(前置)
System.out.println(--a);
⇒ 現在のaの値「2」に対して、
先にデクリメントをしてから出力するので結果は「1」
// デクリメント(後置)
System.out.println(a--);
⇒ 現在のaの値「1」に対して、先に出力するので結果は「1」
これが、インクリメント、デクリメントの大きな特徴です。
プログラムを書いていると、この微妙な使い分けが
役に立つタイミングがありますので、ぜひ覚えておいてください!
代入演算子とは?
次にご紹介するのは、代入演算子です。
代入演算子とは、変数に値を代入する演算子です。
そのままですが、つまりは、「=」(イコール)も代入演算子なのです!
「=」は、算数とは違って、等しいという意味ではなく、
値を代入する時に使うというお話は以下でしましたが、
Javaには、「=」以外にもいろいろと代入演算子が用意されています。
ということで、代表的なものをサンプルコードと交えてご紹介します!
足し算をしてから代入する代入演算子「+=」
サンプルコードは以下です。
int a = 1;
// 足し算をしてから代入
a += 1;
System.out.println(a);
実行結果は以下です。
2
「a += 1」は、「a = a + 1」と同じです。
引き算をしてから代入する代入演算子「-=」
サンプルコードは以下です。
int a = 1;
// 引き算をしてから代入
a -= 1;
System.out.println(a);
実行結果は以下です。
0
「a -= 1」は、「a = a – 1」と同じです。
掛け算をしてから代入する代入演算子「*=」
サンプルコードは以下です。
int a = 1;
// 掛け算をしてから代入
a *= 2;
System.out.println(a);
実行結果は以下です。
2
「a *= 2」は、「a = a * 2」と同じです。
割り算をしてから代入する代入演算子「/=」
サンプルコードは以下です。
int a = 6;
// 割り算をしてから代入
a /= 2;
System.out.println(a);
実行結果は以下です。
3
「a /= 2」は、「a = a / 2」と同じです。
割り算の余りを代入する代入演算子「%=」
サンプルコードは以下です。
int a = 5;
// 余りを計算をしてから代入
a %= 2;
System.out.println(a);
実行結果は以下です。
1
「a %= 2」は、「a = a %+ 2」と同じです。
文字列の結合
演算子を使えば、文字列を結合することもできます。
文字列の結合には、足し算と同じく「+」を使います。
サンプルコードは以下です。
// 文字列を扱う変数
String text = "";
// 文字列を結合
text = "おはよう" + "ございます";
System.out.println(text);
補足事項として、「String」は文字列を扱う為の型です。
また、Javaで文字列を扱う場合は、
値を「”」(ダブルクォーテーション)で囲うルールになっています。
実行結果は以下です。
おはようございます
文字列が結合されてしっかり敬語になりましたね!
あやうくタメ口であいさつして部長に怒られるところでした。
まとめ
今回お話したJavaで使う主要な演算子を一覧にしました。
演算子 | 説明 |
---|---|
+ | 足し算 |
– | 引き算 |
* | 掛け算 |
/ | 割り算 |
% | 商の余り |
++ | インクリメント |
— | デクリメント |
= | 右辺から左辺へ代入 |
+= | 右辺から左辺へ足し算をしてから代入 |
-= | 右辺から左辺へ引き算をしてから代入 |
*= | 右辺から左辺へ掛け算をしてから代入 |
/= | 右辺から左辺へ割り算をしてから代入 |
%= | 右辺から左辺へ商の余りを計算してから代入 |
+ | 文字列の結合 |
自分でコードを書くと理解も早まるので、サンプルコードを書き換えて、
どのような結果が出るのか試してみてください!
次回は、配列についてお話をします!