기금넷 공식사이트 - 복권 조회 - 자바 프로그래밍. 요구 사항은 반복될 수 없습니다. 출력은 작은 것부터 큰 것까지 이루어져야 합니다. 내가 컴파일한 코드가 작동하지 않는 이유는 무엇입니까? 전문가의 도움을 받아 실수를 수정할 수 있기를 바랍니다.

자바 프로그래밍. 요구 사항은 반복될 수 없습니다. 출력은 작은 것부터 큰 것까지 이루어져야 합니다. 내가 컴파일한 코드가 작동하지 않는 이유는 무엇입니까? 전문가의 도움을 받아 실수를 수정할 수 있기를 바랍니다.

귀하의 프로그램은 분명히 오류를 컴파일하고 보고할 것입니다.

포스터에 따르면 이것이 아이디어입니다.

1. 난수를 생성합니다. p>2. 반복되는지 확인하고 다시 생성합니다.

다음과 같이 수정합니다.

public static void test() {

Random r = new Random() ;

int[] a = new int[7];

int js = 0;

for (int i = 0; js < 7; i++ ) {

a[i] = getNo(r);

if (judge(a[i], a)) {

js++;

} else {

i--;

}

}

Arrays.sort(a);< /p >

for (int k = 0; k < 7; k++) {

System.out.print(a[k] + " ");

}

}

public static int getNo(Random r) {

return 1 + r.nextInt(30);

}< /p >

public static boolean Judge(int a, int[] arr) {

for (int i = 0; i < arr.length; i++) {

if ( i == 0 || arr[i] == 0) {

break;

}

if (a == arr[i] ) {

false를 반환;

}

}

true를 반환;

}

하지만 이건 너무 복잡해요

사실 jdk는 이미 좋은 방법을 제공했습니다

Random random = new Random();

Object[] value = new Object[7];

HashSet hashSet = new HashSet();

while (hashSet.size() < value.length) {< / p>

hashSet.add(random.nextInt(30) + 1);

}

값 ​​= hashSet.toArray();

for (int i = 0; i < value.length; i++) {

System.out.print(values[i] + "\t");

}

채택되길 바랍니다. 감사합니다