私は2つのスポットを持つ配列を持っています(最初は2つのスポットが必要です)。私はユーザーの入力を取得し、ユーザーが配列を保持できる以上のものを入力すると、配列を倍増する必要があります。また、-1を入力すると、ユーザー入力が停止するはずです。配列は重複を受け入れてはならない。配列の操作方法は?
私は、重複を受け入れないようにして、ユーザーが-1を入力したときにプログラムを終了させる方法を知らないうちに、いっぱいになるたびに配列を倍増させます。
これまで私がこれまでに持っていたことは、その欠陥があり、正しく実行されていないことです。
public class GroupArrays {
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
int [] numbers = new int[2];
int x;
int n=0;
for(int i = 0; i<numbers.length; i++){
System.out.println("Please enter number");
int number = input.nextInt();
while (input.hasNextInt())
{
x = input.nextInt();
if (n == numbers.length)
{
int[] h;
h = new int[ 2*numbers.length ];
for (int i1 = 0; i1 < numbers.length; i1++)
h[i1] = numbers[i1];
numbers = h;
}
if(x == -1){
break;
}
numbers[n] = x;
n++;
}
for (int i1 = 0; i1 < numbers.length; i1++)
System.out.println(numbers[i1]);
}
}
私は個別にすべてのことを行う方法を見つけ出すことができますが、私は1つのアレイにそれらすべてを行うと、ユーザーの入力を行う必要があるとき、それが困難になります。 PS。私はこれをもっと複雑にするような気がする。
ありがとうございました。私は最初に紙にpsudocodingを開始する必要があります。私はタイプとして私はそれを把握するのに問題があり、通常私は間違っています。 –
そのため、小さくてシンプルな部分に分割することが非常に重要です。これらは、grok、実装、テストするのが簡単です。あなたがうんざりしてしまった場合は、変更するのが簡単です。良い単純なビルディングブロックがあれば、それらを組み立てるのがより簡単になります。 –