배열의 크기보다 작은 중복 숫자/숫자와 배열 크기보다 큰 숫자를 배열에 체크인하는 간단한 코드를 만들려고했습니다. (예를 들어 크기가 7 인 배열의 경우 배열의 숫자는 1-7 사이 여야하며 중복이없는 경우 시스템이 유효하지 않은 오류를 인쇄합니다) 1 크기로 배열을 입력 한 후 Enter 키를 누릅니다. 예를 들어 2 번 나는 다음과 같은 오류 메시지가 얻을 : 스레드 "주요"java.lang.ArrayIndexOutOfBoundsException의배열에 중복 된 입력이 있음
예외 : sumn.main에서 1 (sumn.java:24) 여기
을 코드 자체,이 문제를 해결하는 방법에 대한 생각은 무엇입니까?
public class sumn {
public static boolean Duplicates(int arr[]) {
int a, b;
boolean flag = true;
for (a=0;a<arr.length-1;a++) {
for (b=a+1;b<arr.length;b++) {
if (arr[b]==arr[a]) {
return false;
}
}
}
return flag;
}
public static void main(String[] args) {
int N = MyConsole.readInt("Enter the size of the array:");
int arr[] = new int [N];
int i, j;
boolean flag = true;
for (i=0;i<arr.length;i++) {
arr[i]= MyConsole.readInt("Enter a number between 1 to ");
}
for (j=0;j<arr.length;j++) {
if (Duplicates(arr)==false || N<arr[i] || arr[i]<=0)
flag = false;
if (flag == false) {
System.out.println("Invalid input");
}
}
}
}
24' . 그러지 마. – Kayaman
나는 이러한 "자유로운"명명법에 익숙해지기 전에 몇 가지 Java 스타일 가이드를 살펴볼 것을 제안합니다. – kalsowerus