配列の中にint値が含まれているところのプログラムがあります。 int値が10の倍数であるかどうかに応じて、配列内の配列を返します。このプログラムは問題ありませんが、配列内にint値がないかどうかをチェックするにはどうすればよいですか?私はエラーが発生しました(スレッド "main"の例外java.lang.ArrayIndexOutOfBoundsException:0)ありがとう!値のないjava配列を返します
public class Test1{
public static void main(String[] args){
int[] nums = {};
int[] array = tenRun(nums);
int i;
for(i = 0; i < array.length - 1; i++)
System.out.print(array[i] + ", ");
System.out.println(array[i]);
}
public static int[] tenRun(int[] nums) {
int current;
int i = 0;
while(i < nums.length && nums[i] % 10 != 0)
i++;
if(i >= nums.length)
return nums;
current = nums[i];
i++;
while(i < nums.length) {
if(nums[i] % 10 == 0)
current = nums[i];
else
nums[i] = current;
i++;
}
return nums;
}
}
を返したら、あなたは、このエラーを回避することができるように、私はまだそれのまわりで私の頭を取得することはできませんチェックが含まれ、私は私が自分自身のためにそれを複雑に上かもしれないと思います。 {8、40、7、9、30、6、4、40、1、9}の配列を持っている場合、期待通りに8,40,40,40,30,30,30,40,40,40を返します。誰かが配列をブランク{}のままにしておくと、例外がスローされます。 –
@SombraDevon私はそれを理解しました。あなたはあなたの手にフェンスポストの問題があります。ループの最後に到達します。ここでi = array.length -1ですが、forループがまだiをインクリメントしようとするため、配列[array.length]を出力しようとします。 – Meepo
申し訳ありませんが、私は私の答えを更新しました、今すぐ動作するはずです。 – Meepo