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

回答編集履歴

4

追記

2019/01/18 01:32

投稿

azuapricot
azuapricot

スコア2343

answer CHANGED
@@ -1,5 +1,4 @@
1
1
  動作確認済みです。
2
- 配列の指定箇所に入力した値を挿入できればいいんですよね?
3
2
 
4
3
  ```Java
5
4
  public class ArrayInEx {

3

修正完了

2019/01/18 01:32

投稿

azuapricot
azuapricot

スコア2343

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]; //arr.length-1 -1を消しました。
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 (i == index) { //指定indexと同じ i なった場合
18
+ if (check) { //入力値を新配列に代入済みの場合
18
19
 
19
- NewArray[i] = InValue; //新配列に入力した新しい数字を代入します。
20
+ NewArray[i] = arr[i - 1]; //index考えながら代入
20
- System.out.println("NewArray:" + NewArray[i]);
21
21
 
22
- } else { //指定indexと 違う i の場合
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
- NewArray[i] = arr[i]; //新配列には元の数字を代入します。
31
+ NewArray[i] = arr[i]; //何も考えず代入
25
- System.out.println("NewArray:" + NewArray[i]);
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
- あ~、もかし指定したindexの後ろ新し数字を代入したい・・・?のでしたらょっ変えますね
51
+ System.out.println()などを駆使してどんな動きなってるかき理解してください。

2

修正告知

2019/01/18 01:31

投稿

azuapricot
azuapricot

スコア2343

answer CHANGED
@@ -30,8 +30,6 @@
30
30
  }
31
31
  ```
32
32
 
33
- 超簡単なやり方なので冗長な部分があるかもしれませんが、配列をまだ理解できていないようなので
34
- これくらいで大丈夫かと・・・?
33
+ ---
35
34
 
36
- 配列というより、for文の回し方に難ありなのでしょうか。
37
- System.out.println()をうまく使っ時はこの値が出ている、この時は・・・と繰り返しいろいろな箇所出力てみると理解につながるかもせん。
35
+ あ~、もしかし指定したindex後ろしい数字代入たい・・・?のでたらちょっと変えすね

1

追記

2019/01/18 01:02

投稿

azuapricot
azuapricot

スコア2343

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()をうまく使ってこの時はこの値が出ている、この時には・・・と繰り返しいろいろな箇所を出力してみると理解につながるかもしれません。