teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

スコープの違いについて、補足

2016/03/13 19:11

投稿

Odacchi
Odacchi

スコア907

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

読みやすくするために修正

2016/03/13 19:11

投稿

Odacchi
Odacchi

スコア907

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など)と参照型(プリミティブ型以外のすべて)の違いを明確に理解されてないように思います。