for 文
- 文法
for (初期化の式; 繰り返すかどうか調べる式; 変化のための式)
文;
または
for (初期化の式; 繰り返すかどうか調べる式; 変化のための式) {
文1;
文2;
・
・
}
- 例
-
1
2
3
4
5
6
7
8
9
10
11
|
-
|
-
-
|
!
|
|
!
!
| class Sample
{
public static void main(String args[])
{
for(int i = 1; i <= 5; i++) {
System.out.println("繰り返し中");
}
System.out.println("繰り返し終了");
}
}
|
繰り返し中
繰り返し中
繰り返し中
繰り返し中
繰り返し中
繰り返し終了
- 解説
- for 文では、繰り返す回数をカウントするために、変数を使用します。
処理の流れとしては、
①文を実行
②iをインクリメント (+1する)
③条件を判定
④true ならば文を実行(繰り返し)、false であれば終了
となります。したがって、例文の場合は変数iが1から5まで5回繰り返す事になります。
- 応用例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
-
|
-
|
|
|
|
|
|
|
|
-
|
!
|
|
!
!
|
import java.io.*;
class Sample2
{
public static void main(String args[]) throws IOException
{
System.out.println("いくつまでの合計を求めますか?");
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int num = Integer.parseInt(str);
int sum = 0;
for(int i = 1; i <= num; i++) {
sum += i;
}
System.out.println("1から" + num + "までの合計は" + sum + "です");
}
}
|
while 文
- 文法
while (条件) {
文;
・・・
}
- 例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
-
|
-
|
|
-
|
|
!
|
|
!
!
| class Sample
{
public static void main(String args[])
{
int i = 1;
while(i <= 5) {
System.out.println(i + "番目の繰り返し");
i++;
}
System.out.println("完了");
}
}
|
1番目の繰り返し
2番目の繰り返し
3番目の繰り返し
4番目の繰り返し
5番目の繰り返し
完了
- 解説
- while 文では、条件が false になるまで繰り返し処理を行うことができます。
処理の流れとしては、
①条件を確認
②true であれば、文を実行する、falseであれば、終了
となります。つまり、while(1) { } とすれば、無限ループを作ることができます。
do~while 文
- 文法
do {
文;
・・・
} while (条件);
- 例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
-
|
-
|
|
-
|
|
!
|
|
!
!
| class Sample
{
public static void main(String args[])
{
int i = 1;
do {
System.out.println(i + "番目の繰り返し");
i++;
} while(i <= 5);
System.out.println("完了");
}
}
|
1番目の繰り返し
2番目の繰り返し
3番目の繰り返し
4番目の繰り返し
5番目の繰り返し
完了
- 解説
- 実行結果としては、上記while文の時と同じになりました。
しかし、処理の流れとしては異なります。
①文を実行
②条件を確認
③trueであれば①へ戻り、falseであれば終了
条件を確認するタイミングは、文を実行した後になります。
つまり、最低1回は、文を実行するということです。
break 文
switch文でも出てきましたが、break 文はループ文にも使用することができます。
主な用途としては、処理の流れを強制的に終了し、そのブロックから抜ける働きをします。一言で言えば、ループの強制終了です。
- 使用例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-
|
-
|
|
|
|
|
|
|
|
-
|
|
|
!
!
!
| import java.io.*;
class Sample
{
public static void main(String args[]) throws IOException
{
System.out.println("何番目でループを終了させますか?");
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int res = Interger.parseInt(str);
for(int i = 1; i <= 10; i++) {
System.out.println(i + "番目の繰り返し");
if (i == res)
break;
}
}
}
|
何番目でループを終了させますか? (1~10)
4 [Enter]
1番目の繰り返し
2番目の繰り返し
3番目の繰り返し
4番目の繰り返し
continue 文
break文の他に強制的に処理の流れを変更する命令として、continue文があります。これは、繰り返し内の処理を飛ばし、ブロックの先頭位置に戻って次の処理を続けるという命令です。簡単に言えば、次の繰り返しへGO!という意味になります。
- 使用例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-
|
-
|
|
|
|
|
|
|
|
-
|
|
|
!
!
!
| import java.io.*;
class Sample
{
public static void main(String args[]) throws IOException
{
System.out.println("何番目のループを飛ばしますか?");
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int res = Interger.parseInt(str);
for(int i = 1; i <= 5; i++) {
if(i == res)
continue;
System.out.println(i + "番目の繰り返し");
}
}
}
|
何番目のループを飛ばしますか?
3 [Enter]
1番目の繰り返し
2番目の繰り返し
4番目の繰り返し
5番目の繰り返し