[問題] print可以陣列的位置參考陣列嗎??
public class arrayEx1 {
public static void main(String[] args) {
int[] array = new int[52];
String[] array2 = new String[52];
for(int i=0;i<array2.length;i++){
if(i<13){
array2[i]="黑桃"+(i+1);
}else if(i>=13 & i<26){
array2[i]="紅心"+(i-12);
}else if(i>=26 & i<39){
array2[i]="方塊"+(i-25);
}else if(i>=39 & i<52){
array2[i]="梅花"+(i-38);
}
}//第一part,產生52張有順序的撲克牌
for(int i=0;i<array.length;i++){
array[i]=(int)(Math.random()*52)+1;
for(int j=0;j<i;j++){
if(array[i]==array[j]){
i--;
break;
}
}
}//第二part,產生亂數不重複的52個號碼
for(int i=0;i<52;i++){
System.out.println(array2[array[i]]);
}
}
}
這是我寫的,簡單來講,第一part產生撲克牌,第二part產生亂數
我想要撲克牌參考亂數值print出來
(array2[array[i]]) 這種寫法可以嗎,有問了老師說可以這樣寫
但是我寫出來有錯耶,請問大家哪裡不對呢??
問題主要在於第三part的寫法
錯誤訊息為
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 52
at tw.bawanlung.arrayEx1.main(arrayEx1.java:35)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.171.60.17
※ 編輯: thekensg 來自: 1.171.60.17 (08/13 16:48)
推
08/13 16:50, , 1F
08/13 16:50, 1F
→
08/13 16:51, , 2F
08/13 16:51, 2F
謝謝大大的幫忙,但是理論上我沒有超出索引值呀??
陣列1跟陣列2 都是52個元素,那應該可以跑52次
就算改成for(int i=0;i<52;i++) 也是錯耶
兩個陣列我都有各別RUN過迴圈都是52個值,不懂哪裡出錯
懇請高手大大幫忙
※ 編輯: thekensg 來自: 1.171.60.17 (08/13 16:59)
推
08/13 17:02, , 3F
08/13 17:02, 3F
推
08/13 17:13, , 4F
08/13 17:13, 4F
推
08/13 17:19, , 5F
08/13 17:19, 5F
謝謝各位大大,我知道錯在哪了,真的超出索引了SORRY!!
※ 編輯: thekensg 來自: 1.171.60.17 (08/13 17:20)
→
08/13 17:21, , 6F
08/13 17:21, 6F
推
08/13 17:24, , 7F
08/13 17:24, 7F