各位帮忙看下这是怎么回事啊,在线等/
有代码如下:
import java.util.*;
class test1{
int num;
int type;
}
public class puke{
public static test1 player[][]= new test1[13][4];
puke(){
for(int i=1;i<=13;i++){
for(int j=1;j<=4;j++){
player[i-1][j-1] = new test1();
player[i-1][j-1].type=j;
player[i-1][j-1].num=i;
}
}
}
public static void main(String args[]){
puke p=new puke();
List play = Arrays.asList(p.player);
Collections.shuffle(play);
play.toArray(player);
for(int i=0;i<13;i++){
for(int j=0;j<4;j++){
switch(player[i][j].type){
case 1:{System.out.print("黑桃"+player[i][j].num);break;}
case 2:{System.out.print("红桃"+player[i][j].num);break;}
case 3:{System.out.print("梅花"+player[i][j].num);break;}
case 4:{System.out.print("方片"+player[i][j].num);break;}
default:System.out.print("出错");
}
System.out.println();
}
}
}
}
}
运行后出现以现错误:
红桃5 黑桃2 红桃10 红桃11 java.lang.ArrayIndexOutOfBoundsException: 4
at puke.main(puke.java:54)
Exception in thread "main"
看了半天看不懂是为什么?
帮帮忙啊.
在线等解决马上给分.
问题点数:20、回复次数:9Top
1 楼mydeman(漫步者)回复于 2004-12-01 16:06:01 得分 2
我这里运行正常!!Top
2 楼sgdb(神天月晓)回复于 2004-12-01 16:07:30 得分 2
数组越界
for(int i=0;i<=12;i++){
for(int j=0;j<=3;j++){Top
3 楼fzycool(风之羽)回复于 2004-12-01 16:07:36 得分 0
不是吧,这么邪.Top
4 楼tom2005(随海奔跑)回复于 2004-12-01 16:11:16 得分 4
黑桃10
红桃10
梅花10
方片10
黑桃13
红桃13
梅花13
方片13
黑桃2
红桃2
梅花2
方片2
黑桃12
红桃12
梅花12
方片12
黑桃1
红桃1
梅花1
方片1
黑桃9
红桃9
梅花9
方片9
黑桃6
红桃6
梅花6
方片6
黑桃7
红桃7
梅花7
方片7
黑桃5
红桃5
梅花5
方片5
黑桃4
红桃4
梅花4
方片4
黑桃8
红桃8
梅花8
方片8
黑桃11
红桃11
梅花11
方片11
黑桃3
红桃3
梅花3
方片3
运行结果Top
5 楼fzycool(风之羽)回复于 2004-12-01 16:14:48 得分 0
import java.util.*;
class test{
test(){};
int type;
int num;
}
public class puke{
public static test player[]=new test[52];
puke(){
int i,val=1,valt=1;
for(i=0;i<52;i++){
player[i]=new test();
player[i].num=val;
player[i].type=valt;
if(val==13)val=0;
if(valt==4)valt=0;
val++;
valt++;
}
}
public static void main(String args[]){
puke p =new puke();
List play=Arrays.asList(player);
Collections.shuffle(play);
play.toArray(player);
test playerT[][]=new test[4][13];
int i=0,val,valt;
while(i<52){
for(val=0;val<4;val++){
for(valt=0;valt<13;valt++){
playerT[val][valt]=new test();
playerT[val][valt].num=player[i].num;
playerT[val][valt].type=player[i].type;
i++;
}
}
}
for(val=0;val<4;val++){
for(valt=0;valt<13;val++){
switch(playerT[val][valt].type){
case 1:{System.out.print("黑桃"+playerT[val][valt].num+" ");break;}
case 2:{System.out.print("红桃"+playerT[val][valt].num+" ");break;}
case 3:{System.out.print("红桃"+playerT[val][valt].num+" ");break;}
case 4:{System.out.print("方片"+playerT[val][valt].num+" ");break;}
default:{System.out.print("出错");break;}
}
}
System.out.println();
}
}
}
不好意思贴错了,是这一段代码,不好意思啊呵呵Top
6 楼tom2005(随海奔跑)回复于 2004-12-01 16:29:09 得分 2
for(valt=0;valt<13;valt++){
val++ 改为valt++Top
7 楼catblue(佛家说:一粒沙中看世界。)回复于 2004-12-01 16:36:03 得分 2
java.util.List play=Arrays.asList(player);Top
8 楼catblue(佛家说:一粒沙中看世界。)回复于 2004-12-01 16:37:59 得分 2
List play=Arrays.asList(player);改为
java.util.List play=Arrays.asList(player);
不然编译器告诉你会有歧异
因为awt里也有个List 的类Top
9 楼catblue(佛家说:一粒沙中看世界。)回复于 2004-12-01 16:40:41 得分 6
还有个地方就是
for(valt=0;valt<13;valt++){
val++ 改为valt++
Top




