배열에 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 나는 그것을 이해했다. 손에 fencepost 문제가 있습니다. 루프의 끝 부분에 도달하면 i = array.length -1이되지만, for 루프가 여전히 i를 증가 시키므로 배열 [array.length]을 인쇄하려고합니다. – Meepo
좋아, 내 대답이 업데이트되었습니다. 이제 작동합니다. – Meepo