# 로또 번호 생성기
이런경우는 처음이라 질문 드립니다.
코드를 완성했는데 실행을 시키면 정상작동 하는 경우도 있고 에러가 나는 경우도 있습니다.
이런경우는 어떤 경우인가요..?
#### CODE <a class='btn btn-default' href='/codes/53550'>Link</a>
```
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class Lotto {
public static void main(String[] args) {
RandomNumGenerate randomNum = new RandomNumGenerate();
makeString makeString = new makeString();
List<Integer> lotto = randomNum.randomMake();
System.out.println(makeString.toString(lotto));
}
}
class RandomNumGenerate{
Random random = new Random();
public List<Integer> randomMake(){
List<Integer> lottoNum = new ArrayList<>();
for(int i = 0; i < 6; i++){
int number = random.nextInt(45) + 1;
if(!lottoNum.contains(number)){
lottoNum.add(number);
}
}
return lottoNum;
}
}
class makeString{
public String toString(List<Integer> lottoNum) {
String result = "";
String a = "";
for (int i = 0; i < 6; i++) {
a += String.format("%d ", lottoNum.get(i));
}
result = "생성 번호: " + a;
return result;
}
}
```
#### INPUT
```
```
#### OUPUT
```
생성 번호: 29 4 41 15 27 19
```
jminie님의 답변
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 5 out of bounds for length 5
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
at java.base/java.util.Objects.checkIndex(Objects.java:372)
at java.base/java.util.ArrayList.get(ArrayList.java:459)
at cloudstudyingFinal.makeString.toString(Lotto.java:38)
at cloudstudyingFinal.Lotto.main(Lotto.java:13)
에러가 나면 이렇게 나옵니다 한 4번 잘 나오다가 이런 에러가 나옵니다..
sehongpark님의 답변
IndexOutOfBoundsException을 검색해보세요
배열의 범위를 벗어나는 랜덤값이 생성되는듯 합니다.
jminie님의 답변
for 문으로 i < 6으로 돌리다 보니 중복값이 랜덤생성 됐을 때 배열에 제대로 들어가지 않는 경우가 생겼었습니다!
for 문을 while 문으로 바꾸어 수정하였습니다!