作者thekensg (小猜)
看板java
標題[問題] print可以陣列的位置參考陣列嗎??
時間Tue Aug 13 16:38:46 2013
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)
推 PsMonkey:請補上錯誤訊息 08/13 16:50
→ PsMonkey:==" 剛推完...請搜尋 ArrayIndexOutOfBoundsException 08/13 16:51
謝謝大大的幫忙,但是理論上我沒有超出索引值呀??
陣列1跟陣列2 都是52個元素,那應該可以跑52次
就算改成for(int i=0;i<52;i++) 也是錯耶
兩個陣列我都有各別RUN過迴圈都是52個值,不懂哪裡出錯
懇請高手大大幫忙
※ 編輯: thekensg 來自: 1.171.60.17 (08/13 16:59)
推 PsMonkey:你怎麼知道 array[] 的東西一定都小於 52 08/13 17:02
推 cowbaying:你看一下35行是那個部份 08/13 17:13
推 abola921:int[] array = new int[52]; range: 0 ~ 51 08/13 17:19
謝謝各位大大,我知道錯在哪了,真的超出索引了SORRY!!
※ 編輯: thekensg 來自: 1.171.60.17 (08/13 17:20)
→ gmoz:把值跟長度印出來看就知道了 08/13 17:21
推 cowbaying:他0~51値有+1 08/13 17:24