回答編集履歴
2
スコープの違いについて、補足
test
CHANGED
@@ -14,9 +14,21 @@
|
|
14
14
|
|
15
15
|
どちらの考え方も、プリミティブ型(int,double,booleanなど)と参照型(プリミティブ型以外のすべて)の違いを明確に理解されてないように思います。
|
16
16
|
|
17
|
+
|
18
|
+
|
17
19
|
Listは参照型ですので、Iteratorに値をコピーしているわけではなく、今Listの何番目を参照しているかという情報を渡しています。
|
18
20
|
|
21
|
+
|
22
|
+
|
19
23
|
また、IteratorはListを一通り舐めるための栞(しおり)のような役目を果たしています。
|
24
|
+
|
25
|
+
今回の場合でいうと、栞が指し示す場所が"C"という文字列であったら、Listの要素を削除するという処理をしています。
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
たしかに、栞のスコープはListとは違いますが、栞が消えても、Listは残っているので、今回のような結果となります。
|
30
|
+
|
31
|
+
|
20
32
|
|
21
33
|
|
22
34
|
|
1
読みやすくするために修正
test
CHANGED
@@ -3,6 +3,10 @@
|
|
3
3
|
|
4
4
|
|
5
5
|
> カーソルの関係(要素が繰り上がる)でA,B,Eの3つが表示される
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
|
6
10
|
|
7
11
|
> スコープの関係(while文で使われているstrとfor文で使われているstrは別スコープ)でA~E全てが表示されるのではないか
|
8
12
|
|