私はプログラムのためにこの入力を持っています:
10 8 1 1 4 2 2 4 6 4 4 2 5 0 4 3 4 5 5 2 6 1 3 5 4 2 6 4 6 5 7 2 6 1
最初の2つの要素は高さと幅であり、残りは線分を作る点の座標です。一度に4つの要素をJavaの配列で反復処理する方法はありますか?
public static String[] trees(int[] input)
{
W = input[0];
H = input[1];
int x1, x2, y1, y2;
for (int i = 2; i < input.length; i+=4)
{
x1 = input[i];
x2 = input[i + 1];
y1 = input[i + 2];
y2 = input[i + 3];
StdOut.println(x1 + x2 + y1 + y2);
}
return null;
}
それが唯一のプロトタイプだが、今のように私が唯一input
配列を反復処理したい: と私は、このメソッドを持っています。 WとHは、それは以下のようにする必要がありint
classwide変数
あなたのループがinput.length-1に行くので、入力[i + 3]にアクセスしようとしているので、[input.length + 2]の入力が3つあります終わり。 –
これは、配列がちょうど2 + 4 * nの長さではないことを意味します。たぶんあなたは何かのために幅と高さを使用すると予想されます。 –
@PeterLawreyは言ったように、あなたの 'input'は正しい長さではありません。証明:あなたのデータで[IDEONE](https://ideone.com/genaOh)を実行してください。あなたの前提を確認してください。 – Andreas