Javaの式と演算子について(解説)
Javaでは「式」と「演算子」を使って、計算や比較を行います。
演算子は記号で表され、変数や値に対して処理を行います。
1. 算術演算子
- + : 足し算(例:10 + 5 → 15)
- – : 引き算(例:10 – 5 → 5)
- * : 掛け算(例:10 * 5 → 50)
- / : 割り算(例:10 / 5 → 2)
- % : 余り(例:10 % 3 → 1)
2. 代入演算子
- = : 右辺の値を左辺の変数に代入(例:int x = 10;)
- += : 足して代入(例:x += 5; → x = x + 5;)
- -= : 引いて代入(例:x -= 3; → x = x – 3;)
- *= : 掛けて代入(例:x *= 2; → x = x * 2;)
- /= : 割って代入(例:x /= 2; → x = x / 2;)
3. 比較演算子
- == : 等しい(例:x == 10)
- != : 等しくない(例:x != 10)
- > : より大きい(例:x > 5)
- < : より小さい(例:x < 5)
- >= : 以上(例:x >= 10)
- <= : 以下(例:x <= 10)
4. 論理演算子
- && : かつ(AND)両方がtrueならtrue
- || : または(OR)どちらかがtrueならtrue
- ! : 否定(NOT)trueならfalse、falseならtrue
✅ まとめ:
・算術演算子 → 計算
・代入演算子 → 値の更新
・比較演算子 → 大小や一致の判定
・論理演算子 → 条件式を組み合わせる
Javaではこれらを組み合わせて式を作り、プログラムの処理を行います。
変数宣言文と計算文
public class Main {
public static void main(String[] args) {
int a;
int b;
a = 30;
b = a + 5;
System.out.println(a);
System.out.println(b);
}
}
変数と計算の流れ(解説)
int a;
int b;
- 整数型の変数 a と b を宣言しています。
- この時点では値は入っていません。(未初期化)
a = 30;
- 変数 a に 30 を代入します。
- これで a の中には整数 30 が入ります。
b = a + 5;
- a + 5 → 30 + 5 の計算を行い、結果は 35 になります。
- その結果を変数 b に代入します。
- よって、b の中には 35 が入ります。
System.out.println(a);
- 変数 a の値(30)が出力されます。
System.out.println(b);
- 変数 b の値(35)が出力されます。
✅ 実行結果
1行目 → 30
2行目 → 35
変数を使うことで「値を保存して再利用」できることがわかります。
オペランドとリテラル
Javaのオペランドとリテラルの種類
Javaでは、オペランド(operand)とは「演算子の対象となる値や変数」のことを指します。
その中で、プログラム中に直接書かれる固定の値をリテラル(literal)と呼びます。
| リテラルの種類 | 例 | 説明 |
|---|---|---|
| 整数リテラル | 10, -5 | int型として扱われる整数値。範囲を超える場合は long 型に L を付ける。例:10000000000L |
| 浮動小数点リテラル | 3.14, 2.0f | 小数点を含む数値。デフォルトは double 型。float 型にするには f を付ける。 |
| 文字リテラル | ‘A’, ‘1’ | シングルクォートで囲んだ1文字。char 型として扱われる。 |
| 文字列リテラル | “Hello”, “こんにちは” | ダブルクォートで囲んだ複数文字。String 型として扱われる。 |
| 論理値リテラル | true, false | boolean 型の真偽値を表す。 |
| nullリテラル | null | 参照型変数がどのオブジェクトも参照していないことを表す。 |
✅ まとめ:
・オペランド → 計算や処理の対象になる「値」や「変数」
・リテラル → プログラム中に直接書かれる固定の値
Javaではこれらを使って式や計算を構築します。
エスケープシーケンス
public class Main {
public static void main(String[] args) {
System.out.println("円はこのように記述\\1000です。");
}
}
エスケープシーケンスの解説
System.out.println(“円はこのように記述\\1000です。”);
- \(バックスラッシュ)は特別な意味を持つ文字です。
- 文字列中で \ をそのまま表示したい場合は、\\ と2回書きます。
- この例では \\1000 と書くことで、出力は 「円はこのように記述\1000です。」 となります。
代表的なエスケープシーケンス
| 記述 | 意味 | 出力例 |
|---|---|---|
| \\ | バックスラッシュそのものを出力 | \ |
| \” | ダブルクォートを文字列内に表示 | “ |
| \n | 改行 | 次の行に移動 |
| \t | タブ(スペース) | (空白) |
| \r | 復帰(キャリッジリターン) | 行頭に戻る |
✅ まとめ:
・\ は「特殊な意味を持つ合図」
・普通の文字として出すには \\ と書く
・改行やタブなどもエスケープシーケンスで表現できる
複数行の文字列
public class Main {
public static void main(String[] args) {
String name1 ="氏名:山田太郎\n (やまだたろう)";
String name2 ="""
\n
氏名:大山悠輔
(おおやまゆうすけ)
""";
System.out.println(name1);
System.out.println(name2);
}
}
Javaのテキストブロックを使った複数行文字列
以下のコードでは、通常の文字列リテラルとテキストブロックを使った文字列の違いを示しています。
String name1 =”氏名:山田太郎\n (やまだたろう)”;
String name2 =”””
\n
氏名:大山悠輔
(おおやまゆうすけ)
”””;
ポイント解説
- name1 は通常の文字列リテラルを使用し、改行には \n を記述しています。
- name2 は テキストブロック(“””)を使って複数行の文字列をそのまま表現しています。
- テキストブロックは Java 15 以降で導入された機能で、HTMLやSQLなど複数行を扱う際に便利です。
出力結果
(やまだたろう)
氏名:大山悠輔
(おおやまゆうすけ)
✅ まとめ:
・通常の文字列 → 改行は \n を使う
・テキストブロック → “”” で囲み、そのまま改行を表現できる
・読みやすさと保守性が大幅に向上!
インクリメント演算子
public class Main {
public static void main(String[] args) {
int a;
a = 300;
a++;
System.out.println(a);
}
}
インクリメント演算子の解説
int a;
a = 300;
a++;
System.out.println(a);
ポイント解説
- a++ は「インクリメント演算子」を使った記述です。
- 変数 a の値に +1 を加える処理を行います。
- この例では、最初に a = 300 と代入し、a++ によって 301 になります。
前置と後置の違い
| 書き方 | 意味 | 使われ方 |
|---|---|---|
| a++ | 「後置インクリメント」 処理の後で a の値を +1 | 例: System.out.println(a++); (まず出力、その後 +1) |
| ++a | 「前置インクリメント」 処理の前に a の値を +1 | 例: System.out.println(++a); (先に +1、その後出力) |
出力結果
✅ まとめ:
・a++ は「変数を 1 増やす」簡潔な書き方
・前置 ++a と 後置 a++ は挙動が異なる
・ループ処理(for 文など)でよく利用される
Javaの代表的な算術演算子
算術演算子は、数値の計算を行うために使用される基本的な演算子です。代表的なものを以下の表にまとめました。
| 演算子 | 意味 | 使用例 | 結果 |
|---|---|---|---|
| + | 加算(足し算) | 10 + 5 | 15 |
| – | 減算(引き算) | 10 – 5 | 5 |
| * | 乗算(掛け算) | 10 * 5 | 50 |
| / | 除算(割り算) | 10 / 5 | 2 |
| % | 剰余(割った余り) | 10 % 3 | 1 |
✅ まとめ:
・算術演算子は四則演算や余りの計算を行う基本要素
・特に % は「余り」を求める時によく使われる
・ループ処理や条件分岐で大活躍!
Javaの複合代入演算子
複合代入演算子は、「代入」と「演算」を同時に行える便利な書き方です。通常の算術演算子と比べて、コードを簡潔にできます。
| 演算子 | 意味 | 使用例 | 同じ意味の書き方 | 結果 |
|---|---|---|---|---|
| += | 加算して代入 | a += 5; (a = 10) | a = a + 5; | 15 |
| -= | 減算して代入 | a -= 3; (a = 10) | a = a – 3; | 7 |
| *= | 乗算して代入 | a *= 2; (a = 10) | a = a * 2; | 20 |
| /= | 除算して代入 | a /= 5; (a = 10) | a = a / 5; | 2 |
| %= | 剰余を求めて代入 | a %= 4; (a = 10) | a = a % 4; | 2 |
✅ まとめ:
・複合代入演算子を使うと、コードを短く読みやすくできる
・ループ処理や計算処理でよく使われる
文字列結合演算子
public class Main {
public static void main(String[] args) {
String name3 = "こん" + "にちは";
String name4 = "ベスト" + 5;
System.out.println(name3);
System.out.println(name4);
}
}
Javaの文字列結合演算子(+)
Javaでは + 演算子は、数値の加算だけでなく文字列を結合する機能も持っています。
| コード例 | 説明 | 出力結果 |
|---|---|---|
| String name3 = “こん” + “にちは”; | 2つの文字列を結合 | “こんにちは” |
| String name4 = “ベスト” + 5; | 文字列と数値を結合 (数値は自動的に文字列に変換される) | “ベスト5” |
✅ ポイント:
・+ は数値の計算にも使えるが、文字列の場合は「結合」として働く
・数値が文字列と一緒に使われると、自動的に文字列に変換される
・文字列を組み合わせてメッセージを作るときに便利!
暗黙の型変換
public class Main {
public static void main(String[] args) {
float g = 5;
double h = g;
System.out.println(g);
System.out.println(h);
}
}
大きい型への代入(暗黙の型変換)
Javaでは、小さい範囲のデータ型から大きい範囲のデータ型に代入するとき、自動的に型変換が行われます。 この変換を 暗黙の型変換(Widening Conversion) と呼びます。
| コード例 | 説明 | 出力結果 |
|---|---|---|
| float g = 5; | 小さい型(float, 約7桁の精度)の変数を宣言 | 5.0 |
| double h = g; | 大きい型(double, 約15桁の精度)に自動変換して代入 | 5.0 |
✅ ポイント:
・小さい型 → 大きい型 への変換は自動で行われる(安全な変換)
・float → double, int → long などは暗黙の型変換が可能
・逆(大きい型 → 小さい型)は自動ではできず、明示的にキャストが必要
数値型に関する代入の可否
Javaでは、数値型ごとに扱える範囲が異なります。 小さい型から大きい型への代入は 暗黙の型変換(自動変換) が可能ですが、逆に大きい型から小さい型へ代入する場合は キャスト が必要です。
| 代入元 → 代入先 | byte | short | int | long | float | double |
|---|---|---|---|---|---|---|
| byte | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| short | ✖ (キャスト) | ✔ | ✔ | ✔ | ✔ | ✔ |
| int | ✖ (キャスト) | ✖ (キャスト) | ✔ | ✔ | ✔ | ✔ |
| long | ✖ (キャスト) | ✖ (キャスト) | ✖ (キャスト) | ✔ | ✔ | ✔ |
| float | ✖ (キャスト) | ✖ (キャスト) | ✖ (キャスト) | ✖ (キャスト) | ✔ | ✔ |
| double | ✖ (キャスト) | ✖ (キャスト) | ✖ (キャスト) | ✖ (キャスト) | ✖ (キャスト) | ✔ |
✅ ポイント:
・小さい型 → 大きい型 は自動変換(✔)
・大きい型 → 小さい型 はキャストが必要(✖ (キャスト))
・整数型から浮動小数点型への変換は自動で可能
・浮動小数点型から整数型はキャストが必要
文字列の連結
public class Main {
public static void main(String[] args) {
String name5 = "山田";
String message;
message = name5 + "さん" + "こんにちは";
System.out.println(message);
}
}
文字列の連結と出力
Javaでは、+ 演算子を使って複数の文字列をつなげることができます。 このコードでは、変数 name5 と文字列を連結して新しい文章を作り、System.out.println() で表示しています。
| コード | 説明 |
|---|---|
| String name5 = “山田”; | 変数 name5 に「山田」という文字列を代入 |
| message = name5 + “さん” + “こんにちは”; | 「山田」+「さん」+「こんにちは」を連結して message に代入 |
| System.out.println(message); | 完成した文字列「山田さんこんにちは」を出力 |
✅ 出力結果:
山田さんこんにちは
改行なし出力
public class Main {
public static void main(String[] args) {
String name6 = "山田";
System.out.print("私は");
System.out.print(name6);
System.out.print("と申します。");
}
}
文字列の出力と変数の利用
Javaでは、System.out.print() を使って文字列を出力できます。 このコードでは、変数 name6 に名前を代入し、3回の print() を使って文章をつなげています。
| コード | 説明 |
|---|---|
| String name6 = “山田”; | 変数 name6 に「山田」という文字列を代入 |
| System.out.print(“私は”); | 文字列「私は」を出力 |
| System.out.print(name6); | 変数 name6 の内容(山田)を出力 |
| System.out.print(“と申します。”); | 文字列「と申します。」を出力 |
✅ 出力結果:
私は山田と申します。
大小比較
public class Main {
public static void main(String[] args) {
int p = 10;
int u = 2;
int k = Math.max(p, u);
System.out.println(p + "と" + u + "で比較して大きいほうは、" + k);
}
}
Math.max() を使った大小比較
Javaでは、Math.max() メソッドを使うことで、2つの数値のうち大きい方を簡単に求めることができます。 このコードでは、p と u を比較し、大きい方の値を k に代入しています。
| コード | 説明 |
|---|---|
| int p = 10; | 整数変数 p に 10 を代入 |
| int u = 2; | 整数変数 u に 2 を代入 |
| int k = Math.max(p, u); | p と u を比較し、大きい方の値を k に代入 |
| System.out.println(p + “と” + u + “で比較して大きいほうは、” + k); | p と u の値、および大きい方の結果を出力 |
✅ 出力結果:
10と2で比較して大きいほうは、10
整数変換
public class Main {
public static void main(String[] args) {
String age = "21";
int b = Integer.parseInt(age);
System.out.println("来年" + (b + 1) +"歳になります。");
}
}
文字列を整数に変換して計算する
Javaでは、文字列として保持されている数字をそのまま計算に使うことはできません。 そこで Integer.parseInt() メソッドを使い、文字列を整数型に変換します。 このコードでは、文字列 “21” を整数に変換し、1年後の年齢を計算しています。
| コード | 説明 |
|---|---|
| String age = “21”; | 変数 age に文字列 “21” を代入 |
| int b = Integer.parseInt(age); | 文字列 age を整数型に変換して b に代入 |
| System.out.println(“来年” + (b + 1) +”歳になります。”); | b に 1 を加え、 「来年◯歳になります。」という文章を出力 |
✅ 出力結果:
来年22歳になります。
ランダム数値
public class Main {
public static void main(String[] args) {
int e = new java.util.Random().nextInt(100);
System.out.println("私の予想、" + e + "歳ですね");
}
}
ランダムな数値を生成して表示する
Javaでは、java.util.Random クラスを使ってランダムな整数を生成できます。 このコードでは、0以上100未満の整数をランダムに作り、それを年齢として表示しています。
| コード | 説明 |
|---|---|
| int e = new java.util.Random().nextInt(100); | new java.util.Random() でランダム生成器を作成し、 nextInt(100) で 0~99 の整数を生成して e に代入 |
| System.out.println(“私の予想、” + e + “歳ですね”); | 文字列とランダムな数値 e を結合し、 「私の予想、◯歳ですね」と出力 |
✅ 出力例:
私の予想、74歳ですね
キーボード入力と出力
public class Main {
public static void main(String[] args) {
System.out.println("名前を入力してください");
String name7 = new java.util.Scanner(System.in).nextLine();
System.out.println("生まれた西暦を入力してください");
int age = new java.util.Scanner(System.in).nextInt();
System.out.println(age + "年生まれの" + name7 + "さんよろしくお願いします。");
}
}
キーボードからの入力と出力
Javaでは Scanner クラスを使うことで、キーボードから文字や数字を入力できます。 この例では、名前と生まれた西暦を入力し、それを使ってあいさつ文を出力しています。
| コード | 説明 |
|---|---|
| System.out.println(“名前を入力してください”); | ユーザーに名前の入力を促すメッセージを表示 |
| String name7 = new java.util.Scanner(System.in).nextLine(); | Scanner を使い、キーボードから文字列(名前)を入力して name7 に代入 |
| System.out.println(“生まれた西暦を入力してください”); | ユーザーに生まれた年の入力を促すメッセージを表示 |
| int age = new java.util.Scanner(System.in).nextInt(); | Scanner を使い、キーボードから整数(西暦)を入力して age に代入 |
| System.out.println(age + “年生まれの” + name7 + “さんよろしくお願いします。”); | 入力された 年 と 名前 を組み合わせてあいさつ文を出力 |
✅ 出力例(入力が「山田太郎」「1995」の場合):
1995年生まれの山田太郎さんよろしくお願いします。



![【原神】刻晴超開花パーティ 夜蘭蒸発パーティ 深境螺旋12層攻略 Genshin Impact [4K] (げんしん)](https://design-pull.com/wp-content/uploads/2022/12/gensinabyssal_spiral12_20221126-320x180.jpg)




