我已编写此代码,因为我想在7个数字中连续打印5个最小数字,但不想打印重复值。现在给出一些例外。
该怎么办?
我想我需要动态类型Arraylist
,但我不知道确切地应用它。
class mycode{
public static void main(String[] args) {
boolean lowStraightFound = false;
int firstCard=0 ;
int firstCardIndex = 0;
int lastCard =0;
int lastCardIndex = 0;
int c[]={1,2,3,3,4,5,7};
int[] inarow = new int[20];
int index[]=new int[5];
int last=0;
int num = c.length;
for (int i = 0; i < num; i++) {
int card = c[i];
if (lastCard!= 0) {
int lastOrd = lastCard;
int cardOrd = card;
if (cardOrd - lastOrd == 1) {
inarow[0]++;
lastCardIndex = i;
last++;
index[last]=i;
} else if (cardOrd - lastOrd != 0) {
inarow[0] = 1;
firstCard = card;
firstCardIndex = i;
last=0;
index[last]=i;
}else if(cardOrd - lastOrd == 0){
index[last]=i;
last=i;
}
} else {
firstCard = card;
firstCardIndex = i;
index[last]=i;
}
lastCard = card;
if (inarow[0] == 5) {
lowStraightFound = true;
break;
}
}
for (int i = last; i >= 0; i--) {
System.out.println(c[i]);
}
}
}
答案 0 :(得分:1)
答案 1 :(得分:0)
我猜你得到ArrayIndexOutOfBoundsException。
要防止出现这种情况,请更改第28行:
index[last]=i;
进入这个:
index[last++]=i;
或更改第14行:
int index[]=new int[5];
进入这个:
int index[]=new int[6];
因为你的索引达到5(数组大小 - 1)