回答編集履歴

2

諸々追加

2016/11/06 06:03

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -1,4 +1,12 @@
1
1
  for文のセミコロンで区切られた文は、順に初期化文、継続条件、更新文となっています。これはそのいずれも指定しない書き方です。
2
+
3
+ - 初期化文 → 最初にforに入る際に行う処理
4
+
5
+ - 継続条件 → 初期化文または更新文の実行後に判定するbooleanを返す式。trueなら続行。何もなければ無条件続行。
6
+
7
+ - 更新文 → for文の内容が1回終了するごとに実行する処理
8
+
9
+
2
10
 
3
11
  特に継続条件がないものは、内部でbreakやreturnを実行しない限り、無限ループになります。
4
12
 
@@ -22,4 +30,4 @@
22
30
 
23
31
 
24
32
 
25
- しかしこのforループはこのいずれも起こり得ません。そのため、forループの次にある文は「デッドコード」となり、ミスと見なされてコンパイルエラーになるのです。
33
+ しかしこのforループはこのいずれも起こり得ません。そのため、永遠にforループの内容を実行することになり、forループの次にある文は絶対に実行されることのない「デッドコード」となり、ミスと見なされてコンパイルエラーになるのです。

1

ループ脱出

2016/11/06 06:03

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -1,3 +1,25 @@
1
1
  for文のセミコロンで区切られた文は、順に初期化文、継続条件、更新文となっています。これはそのいずれも指定しない書き方です。
2
2
 
3
3
  特に継続条件がないものは、内部でbreakやreturnを実行しない限り、無限ループになります。
4
+
5
+
6
+
7
+ forループから抜け出す方法はいくつかあり、
8
+
9
+ 0. 継続条件の判定がfalseになる
10
+
11
+ 0. break文の実行
12
+
13
+ (for以外に、while,switchブロックから抜け出すのにも使う)
14
+
15
+ 0. return文の実行
16
+
17
+ (メソッド内のどこからでも実行でき、そのメソッドを抜け出す)
18
+
19
+ 0. 例外の発生
20
+
21
+ (ループの外にcatchがあればループを抜けそこに行く)
22
+
23
+
24
+
25
+ しかしこのforループはこのいずれも起こり得ません。そのため、forループの次にある文は「デッドコード」となり、ミスと見なされてコンパイルエラーになるのです。