Java Silver 勉強③演算子と制御構造・配列の操作
【出題項目の例】
- Javaの基本データ型と文字列の操作
- 演算子と制御構造
- ⭐️配列の操作
- クラスの宣言とインスタンスの使用
- メソッドの作成と使用
- カプセル化の適用
- 継承による実装の再利用
- インタフェースによる抽象化
- 例外処理
- モジュール・システム
演算子と制御構造
1. 演算子 (Operators)
Javaにはさまざまな演算子があります。以下に代表的なものを紹介します。
(1) 算術演算子
-
+
: 加算 -
-
: 減算 -
*
: 乗算 -
/
: 除算 -
%
: 剰余(余り)
例:
int a = 10, b = 3;
System.out.println(a + b); // 13
System.out.println(a - b); // 7
System.out.println(a * b); // 30
System.out.println(a / b); // 3
System.out.println(a % b); // 1
(2) 比較演算子
-
==
: 等しい -
!=
: 等しくない -
>
: より大きい -
<
: より小さい -
>=
: 以上 -
<=
: 以下
例:
int a = 5, b = 10;
System.out.println(a == b); // false
System.out.println(a != b); // true
System.out.println(a > b); // false
System.out.println(a < b); // true
(3) 論理演算子
-
&&
: 論理積(AND) -
||
: 論理和(OR) -
!
: 否定(NOT)
例:
boolean x = true, y = false;
System.out.println(x && y); // false
System.out.println(x || y); // true
System.out.println(!x); // false
(4) 代入演算子
-
=
: 代入 -
+=
: 加算代入 -
-=
: 減算代入 -
*=
: 乗算代入 -
/=
: 除算代入 -
%=
: 剰余代入
例:
int a = 5;
a += 3; // a = a + 3; -> a = 8
a *= 2; // a = a * 2; -> a = 16
(5) インクリメント・デクリメント演算子
-
++
: 変数を1増加 -
--
: 変数を1減少
例:
int a = 5;
System.out.println(a++); // 5 (後置インクリメント)
System.out.println(++a); // 7 (前置インクリメント)
2. 制御構造 (Control Structures)
制御構造はプログラムの流れを制御するために使用します。
if
, else if
, else
)
(1) 条件分岐 (-
if
: 条件が真の場合に実行 -
else if
: 追加の条件判定 -
else
: それ以外の場合に実行
例:
int a = 10;
if (a > 0) {
System.out.println("a is positive");
} else if (a < 0) {
System.out.println("a is negative");
} else {
System.out.println("a is zero");
}
(2) switch文
- 値に基づいて異なるケースを選択して実行
例:
int day = 3;
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
default:
System.out.println("Invalid day");
break;
}
for
, while
, do-while
)
(3) 繰り返し構造 (-
for
: 指定回数だけ繰り返す -
while
: 条件が真の間繰り返す -
do-while
: 条件が後から評価される、最低1回は実行
例 (for
):
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
例 (while
):
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
}
例 (do-while
):
int i = 0;
do {
System.out.println(i);
i++;
} while (i < 5);
(4) break と continue
-
break
: ループを抜ける -
continue
: 現在の繰り返しをスキップして次の繰り返しに進む
例:
for (int i = 0; i < 5; i++) {
if (i == 2) {
break; // iが2のときループ終了
}
System.out.println(i);
}
for (int i = 0; i < 5; i++) {
if (i == 2) {
continue; // iが2のときスキップして次の繰り返し
}
System.out.println(i);
}
配列の操作
Javaにおける配列の操作について、試験対策として以下の内容をまとめます。配列はデータの集合を扱うための重要な構造であり、基本的な操作を理解しておくことが重要です。
1. 配列の宣言と初期化
配列は、同じ型のデータを複数格納できる変数です。
(1) 配列の宣言
配列の型を指定して、配列を宣言します。
int[] arr; // 整数型の配列を宣言
String[] names; // 文字列型の配列を宣言
(2) 配列の初期化
配列を宣言した後、new
キーワードを使ってサイズを指定して初期化します。
arr = new int[5]; // 5つの要素を持つ整数型の配列を作成
配列は同時に初期化することもできます。
int[] arr = {1, 2, 3, 4, 5}; // 5つの整数を持つ配列を初期化
String[] names = {"Alice", "Bob", "Charlie"}; // 文字列配列を初期化
2. 配列の要素へのアクセス
配列の要素にアクセスするには、インデックスを使います。インデックスは0から始まります。
int[] arr = {10, 20, 30, 40, 50};
System.out.println(arr[0]); // 10
System.out.println(arr[3]); // 40
3. 配列の長さ
配列の長さは、length
プロパティで取得できます。length
は配列の要素数を返します。
int[] arr = {10, 20, 30, 40, 50};
System.out.println(arr.length); // 5
4. 配列のコピー
配列をコピーする方法は主に2つあります。
System.arraycopy()
を使ったコピー
(1) 指定した範囲を新しい配列にコピーするメソッドです。
int[] arr1 = {1, 2, 3};
int[] arr2 = new int[3];
System.arraycopy(arr1, 0, arr2, 0, arr1.length); // arr1の全要素をarr2にコピー
Arrays.copyOf()
を使ったコピー
(2) Arrays
クラスのcopyOf()
メソッドを使う方法です。新しい配列に拡張してコピーもできます。
int[] arr1 = {1, 2, 3};
int[] arr2 = Arrays.copyOf(arr1, arr1.length); // arr1の全要素をarr2にコピー
5. 配列の要素の変更
配列の要素はインデックスを指定して変更することができます。
int[] arr = {1, 2, 3, 4, 5};
arr[2] = 10; // 3番目の要素を10に変更
System.out.println(arr[2]); // 10
6. 配列のループ操作
配列の要素を一括で処理するためには、ループを使います。
for
文を使ったループ
(1) int[] arr = {10, 20, 30, 40, 50};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
foreach
)
(2) 拡張for文 (Javaの拡張for
文(foreach
)を使うと、配列の全要素を簡単に処理できます。
int[] arr = {10, 20, 30, 40, 50};
for (int value : arr) {
System.out.println(value);
}
7. 配列の並び替え(ソート)
Javaでは、Arrays.sort()
メソッドを使って配列をソートすることができます。
int[] arr = {5, 3, 8, 1, 2};
Arrays.sort(arr); // 配列を昇順にソート
System.out.println(Arrays.toString(arr)); // [1, 2, 3, 5, 8]
8. 配列の検索
配列内で特定の要素を検索するには、Arrays.binarySearch()
メソッドを使うことができます。ただし、これはソートされた配列に対してのみ使用できます。
int[] arr = {1, 2, 3, 5, 8};
int index = Arrays.binarySearch(arr, 5); // 5が配列のどこにあるかを検索
System.out.println(index); // 3
9. 多次元配列
Javaでは多次元配列(例えば2次元配列)を扱うこともできます。
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// 要素にアクセス
System.out.println(matrix[1][2]); // 6
⭐️10. 配列のコピーと参照
配列は参照型であるため、コピーした場合に新しい配列が作られるわけではなく、参照がコピーされる点に注意が必要です。
int[] arr1 = {1, 2, 3};
int[] arr2 = arr1; // arr2はarr1と同じ配列を参照
arr2[0] = 10; // arr2を変更するとarr1も影響を受ける
System.out.println(arr1[0]); // 10
Discussion