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