作者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)
1F:推 PsMonkey:请补上错误讯息 08/13 16:50
2F:→ 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)
3F:推 PsMonkey:你怎麽知道 array[] 的东西一定都小於 52 08/13 17:02
4F:推 cowbaying:你看一下35行是那个部份 08/13 17:13
5F:推 abola921:int[] array = new int[52]; range: 0 ~ 51 08/13 17:19
谢谢各位大大,我知道错在哪了,真的超出索引了SORRY!!
※ 编辑: thekensg 来自: 1.171.60.17 (08/13 17:20)
6F:→ gmoz:把值跟长度印出来看就知道了 08/13 17:21
7F:推 cowbaying:他0~51値有+1 08/13 17:24