回答編集履歴
2
kの個数について補足
answer
CHANGED
@@ -8,8 +8,8 @@
|
|
8
8
|
1:空の配列kを用意
|
9
9
|
2:ランダムな数字pを1つ生成する
|
10
10
|
3:既に配列kに入っている要素をそれぞれpと比較
|
11
|
-
4:pと同じ数字がkに入っていなければ、pをkに加える
|
11
|
+
4:pと同じ数字がkに入っていなければ、pをkに加える(この結果、kの要素の個数が1個増える)
|
12
|
-
5:上記の2-4をループさせ、kの個数が一定以上になったら終了
|
12
|
+
5:上記の2-4をループさせ、kの要素の個数が一定以上になったら終了
|
13
13
|
|
14
14
|
などがありえます。
|
15
15
|
3の処理では、別のループを回してもよいですが、`indexOf`を使う方法などもあります。
|
1
処理の順番を修正
answer
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
`for in`文の中で使う要素(この場合は`l`)は定数です。これはSwiftの仕様です。
|
2
2
|
`for l in a`は、ループが1周回るたびに、`l`の値が`a[0]`, `a[1]`...と変化していくものです。もし`l`の値を勝手に変えることができると、配列`a`の中にない値にすることもでき、不具合の温床になってしまいます。
|
3
|
-
(今回の場合は、aは0から9までの整数が入った配列と考えてください)
|
3
|
+
(今回の場合は、`a`は0から9までの整数が入った配列と考えてください)
|
4
4
|
|
5
5
|
質問のコードは、`for in`文の中で`l`の値を変えなければ成立しないような処理になっています。エラーを解消するには、何をループさせるかを大きく考え直さなければいけません。
|
6
6
|
|
7
7
|
例えば、
|
8
|
+
1:空の配列kを用意
|
8
|
-
|
9
|
+
2:ランダムな数字pを1つ生成する
|
9
|
-
|
10
|
+
3:既に配列kに入っている要素をそれぞれpと比較
|
10
|
-
|
11
|
+
4:pと同じ数字がkに入っていなければ、pをkに加える
|
11
|
-
|
12
|
+
5:上記の2-4をループさせ、kの個数が一定以上になったら終了
|
12
13
|
|
13
14
|
などがありえます。
|
14
|
-
|
15
|
+
3の処理では、別のループを回してもよいですが、`indexOf`を使う方法などもあります。
|