12.
繰り返し(for)
繰り返しとは
繰り返し処理(ループ処理)は、基本三構造の1つで、ある処理を何度も繰り返し実行することをいいます。
- 1 から 10 までの数字を順に表示する
- 価格 x 個数の合計を何度も計算する
繰り返し処理のフロー
繰り返し処理をフローにすると以下のようになります。
for文
for文の条件
繰り返しの基本となるのがfor文です。forのあとに ( )をつけてその中に条件を記述します。
for (条件を設定)
つぎに 「{ }」を記述し、その中に繰り返し処理を記述します。
for (条件を設定) {
処理;
}
for の繰り返し条件設定
繰り返しの条件の設定は、 ;(セミコロン) で区切り、初期値(いくつから)、終了条件(いくつまで)、増減(どれくらい)を指定します。
for (int 初期値; 終了条件; 増減) {
処理;
}
0から10まで順に表示
0 から 10までの数字を順番に表示します。変数 i が 0 から 10 まで1ずつ増加して繰り返します。i++ は1増加する単項演算です。

for文を使う
ファイル構成
「ItemRepeat.java」を作成しましょう。
lesson1
└── src/
└── sample/
└── ItemRepeat.java
for文で繰り返し
変数 i を使って for文で数字を順番に表示してみましょう。
for (int i = 0; i <= 10; i++) {
System.out.println(i);
}
結果
0
1
2
3
4
5
6
7
8
9
10
for文の自動入力補完
for文の入力が面倒なときは、自動入力補完してみましょう。まず、forを入力します。
for
「Ctrl + スペース」で候補が表示されるので、「for - 配列にインデックスを使用」を選択します。
for文が自動入力できました。
for (int i = 0; i < args.length; i++) {
}
for 文のネスト
for文の中に、さらにfor文を記述することをネストといいます。例えば 10行10列の座標を表示すると以下のようになります。
for (int x = 1; x <= 10; x++) {
for (int y = 1; y <= 10; y++) {
String plot = "(" + x + "," + y + ")";
System.out.print(plot);
}
System.out.println();
}
結果
(1, 1) (1, 2) (1, 3) (1, 4) (1, 5) (1, 6) (1, 7) (1, 8) (1, 9) (1, 10)
(2, 1) (2, 2) (2, 3) (2, 4) (2, 5) (2, 6) (2, 7) (2, 8) (2, 9) (2, 10)
(3, 1) (3, 2) (3, 3) (3, 4) (3, 5) (3, 6) (3, 7) (3, 8) (3, 9) (3, 10)
(4, 1) (4, 2) (4, 3) (4, 4) (4, 5) (4, 6) (4, 7) (4, 8) (4, 9) (4, 10)
(5, 1) (5, 2) (5, 3) (5, 4) (5, 5) (5, 6) (5, 7) (5, 8) (5, 9) (5, 10)
(6, 1) (6, 2) (6, 3) (6, 4) (6, 5) (6, 6) (6, 7) (6, 8) (6, 9) (6, 10)
(7, 1) (7, 2) (7, 3) (7, 4) (7, 5) (7, 6) (7, 7) (7, 8) (7, 9) (7, 10)
(8, 1) (8, 2) (8, 3) (8, 4) (8, 5) (8, 6) (8, 7) (8, 8) (8, 9) (8, 10)
(9, 1) (9, 2) (9, 3) (9, 4) (9, 5) (9, 6) (9, 7) (9, 8) (9, 9) (9, 10)
(10, 1) (10, 2) (10, 3) (10, 4) (10, 5) (10, 6) (10, 7) (10, 8) (10, 9) (10, 10)
配列の繰り返し
for文を使うと、配列の値を繰り返し処理することができます。
配列の長さ
配列のlengthで、配列の要素の個数を取得します。
Array.length
配列の値を表示
配列「drinks」を作成し、for文で繰り返し表示してみましょう。それぞれの値は「drinks」からiを配列のインデックスとして取得します。
String[] drinks = { "コーヒー", "紅茶", "ほうじ茶" };
for (int i = 0; i < drinks.length; i++) {
//i をインデックスとして取得
String drink = drinks[i];
System.out.println(drink);
}
結果
コーヒー
紅茶
ほうじ茶
演習
問題1
1 から 3000 までの整数をすべて足した合計はいくつですか?
1)500500
2)445650
3)4501500
4)5501500
問題2
9 x 9 のかけ算の答えを、段ごとに表示してみましょう。
表示結果の例
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
問題3(高難易度)
以下のように 5 x 5 の表に「○」「●」をランダムに表示してみましょう。
|○|●|○|●|○|
|●|○|●|○|●|
|○|●|○|●|○|
|●|○|●|○|●|
|○|●|○|●|○|