package javaprac;
import java.util.*;
public class hello {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
ArrayList<String> cardShape = new ArrayList<String>();
ArrayList<String> cardNum = new ArrayList<String>();
String shape [] = { "DIA","CLOVER","HEART","SPADE"};
String num [] = { "2","3","4","5","6","7","8","9","10","j","q","k","ace"};
for (int i = 0; i<shape.length; i++) {
cardShape.add(shape[i]);
}
for (int i = 0; i<num.length; i++) {
cardNum.add(num[i]);
}
double randomValue = Math.random();
int shaperan = (int)(randomValue * cardShape.size()) -1;
int numran = (int)(randomValue * cardNum.size())-1;
String get_Shape = cardShape.get(shaperan);
String get_Num = cardNum.get(numran);
System.out.println(get_Shape+"의 모양과" + get_Num+"의 숫자");
}
}
이렇게 실행하면 어쩔때 결과값 제대로 나오는데 어쩔데 배열인덱스 오류가 나는데 왜 오류가나는건가요
인덱스 값 설정 잘한거같은데
도움 부탁드립니다.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.elementData(ArrayList.java:422)
at java.util.ArrayList.get(ArrayList.java:435)
at javaprac.hello.main(hello.java:28)
이게 오류 내용이에요
![]() |
![]() |
만약 반환된 값이 0.1이라고 치면 shaperan은 (int)(0.1 * 4) - 1니까 -1이 되어버림
그리고 배열의 -1 위치에 있는 값을 가져오려고 하니 ArrayIndexOutOfBoundsException 오류가 뜨는 거