여기 좀 이상한 상황이 있는데, 저를 도울 수 있다고 생각했습니다. 1에서 10 사이의 숫자로 채워진 int 배열이 있습니다.이 배열에서 임의의 숫자를 생성하고 다른 int 배열에 저장하고 싶습니다. 나는 어떤 번호를 선택하는 Random 클래스를 사용하여 임의 0을 발생하기 때문에도 나는 그런 수정 (그래서 1에서 10까지 숫자를 throw)자바 프로그램에서 이상한 결과가 나옵니다.
randNum = rand.nextInt(numbers.length-min+1)+min;
다음 코드는이 같은 난수를 생성하는 경우, 그것은 건너 뛰고 있는지 확인합니다 그것. 프로그램이 실제로 작동하고 1에서 10까지 무작위로 배열 된 다른 배열이 나타납니다. 그게 내가 원하는 것입니다. 하지만 때때로 1에서 10까지 하나의 숫자가 누락되었습니다. 그리고 iam 대신 Zero를 얻습니다. 왜??
int[] numbers = {1,2,3,4,5,6,7,8,9,10};
int[] usednum = new int[10];
Random rand = new Random();
int randNum;
int min = 1;
for (int x = 0; x<numbers.length; x++) {
for (int i = 0; i<usednum.length; i++) {
randNum = rand.nextInt(numbers.length-min+1) + min;
for (int f = 0; f<usednum.length; f++) {
if (usednum[f] == randNum) {
break;
} else if (usednum[f] == 0) {
usednum[x] = randNum;
}
}
}
}
for (int c = 0; c<usednum.length; c++) {
System.out.println(usednum[c]);
}
작품, 실행 10 배 –
나는 이것을 실행하고 오류가 있음을 확인했다 : 나는 당신이 뭔가에 코드를 변경하려는 것이라 생각합니다. –
'g '의 목적은 무엇입니까? 당신은 그것을 할당하지만 그것을 사용하지 마십시오. –