回答編集履歴
4
追記
answer
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
動作確認済みです。
|
2
|
-
配列の指定箇所に入力した値を挿入できればいいんですよね?
|
3
2
|
|
4
3
|
```Java
|
5
4
|
public class ArrayInEx {
|
3
修正完了
answer
CHANGED
@@ -9,27 +9,43 @@
|
|
9
9
|
if (index == 0|| index >= arr.length) {
|
10
10
|
throw new NumberFormatException ("\nEroor - Index number is Wrong.Check again!!!");
|
11
11
|
}
|
12
|
-
|
12
|
+
|
13
|
-
int[] NewArray = new int[arr.length];
|
13
|
+
int[] NewArray = new int[arr.length + 1]; //新配列は元の配列の長さ + 1
|
14
|
+
boolean check = false; //要素に入力値を代入したかどうかのチェック
|
14
15
|
|
15
|
-
for (int i=0; i < arr.length; i++) {
|
16
|
+
for (int i=0; i < arr.length + 1; i++) {
|
16
17
|
|
17
|
-
if (
|
18
|
+
if (check) { //既に入力値を新配列に代入済みの場合
|
18
19
|
|
19
|
-
NewArray[i] =
|
20
|
+
NewArray[i] = arr[i - 1]; //indexを考えながら代入
|
20
|
-
System.out.println("NewArray:" + NewArray[i]);
|
21
21
|
|
22
|
-
} else { //
|
22
|
+
} else { //まだ代入されてない場合
|
23
23
|
|
24
|
+
if (i == index) { //新配列のindexが入力したindexと同じになった場合
|
25
|
+
|
26
|
+
NewArray[i] = InValue; //入力値を代入
|
27
|
+
check = true; //フラグをONにする
|
28
|
+
|
29
|
+
} else { //まだ入力値のindexと同じでない場合
|
30
|
+
|
24
|
-
|
31
|
+
NewArray[i] = arr[i]; //何も考えず代入
|
25
|
-
|
32
|
+
}
|
26
33
|
}
|
27
34
|
}
|
28
35
|
return NewArray;
|
29
36
|
}
|
30
37
|
}
|
38
|
+
|
31
39
|
```
|
32
40
|
|
33
41
|
---
|
34
42
|
|
43
|
+
超簡単にやるために要素に値を代入したかどうかのチェックを入れました。
|
44
|
+
(あまりチェックを多用するのはおすすめされてませんが・・・。)
|
45
|
+
|
46
|
+
よく考えなければいけないのは代入した後のindexの処理ですね。
|
47
|
+
恐らくここで躓いていたのではないでしょうか。
|
48
|
+
それ以前でしたら、残念ながらfor文と配列を1から勉強してくださいとしか言えません。
|
49
|
+
|
50
|
+
質問者さんにお願いですが、『コピーしてはい!できた~おわり!』ではなく、
|
35
|
-
|
51
|
+
System.out.println()などを駆使してどんな動きになっているかきちんと理解してください。
|
2
修正告知
answer
CHANGED
@@ -30,8 +30,6 @@
|
|
30
30
|
}
|
31
31
|
```
|
32
32
|
|
33
|
-
超簡単なやり方なので冗長な部分があるかもしれませんが、配列をまだ理解できていないようなので
|
34
|
-
|
33
|
+
---
|
35
34
|
|
36
|
-
配列というより、for文の回し方に難ありなのでしょうか。
|
37
|
-
|
35
|
+
あ~、もしかして指定したindexの後ろに新しい数字を代入したい・・・?のでしたらちょっと変えますね
|
1
追記
answer
CHANGED
@@ -28,4 +28,10 @@
|
|
28
28
|
return NewArray;
|
29
29
|
}
|
30
30
|
}
|
31
|
-
```
|
31
|
+
```
|
32
|
+
|
33
|
+
超簡単なやり方なので冗長な部分があるかもしれませんが、配列をまだ理解できていないようなので
|
34
|
+
これくらいで大丈夫かと・・・?
|
35
|
+
|
36
|
+
配列というより、for文の回し方に難ありなのでしょうか。
|
37
|
+
System.out.println()をうまく使ってこの時はこの値が出ている、この時には・・・と繰り返しいろいろな箇所を出力してみると理解につながるかもしれません。
|