Java 金鱼首对
我正在做一个金鱼游戏。有四名球员。每当我尝试检查初始对时,就会得到一个java语言异常越界错误。错误指向if语句,但我不知道如何修复代码 代码如下:Java 金鱼首对,java,Java,我正在做一个金鱼游戏。有四名球员。每当我尝试检查初始对时,就会得到一个java语言异常越界错误。错误指向if语句,但我不知道如何修复代码 代码如下: public void initialPairs() { for (int index1 = 4; index1 >= 0; index1--) { for (int index = 0; index <= 3; index++) { if (hand.get
public void initialPairs() {
for (int index1 = 4; index1 >= 0; index1--) {
for (int index = 0; index <= 3; index++) {
if (hand.get(index1).getRank() == hand.get(index).getRank() && index != index1)
{
Card c = hand.remove(index1);
Card d = hand.remove(index);
size = size - 2;
System.out.println("Removed: " + c + " & " + d);
System.out.println("Player 1's hand:" + hand);
}
}
}
}
public void initialPairs(){
对于(int index1=4;index1>=0;index1--){
对于(int index=0;index而言,问题在于您假设手牌有五张牌,而且,在移除一对牌后,您不会调整索引。最后,当您找到一对牌时,您希望立即打破内环。请尝试以下操作:
public void initialPairs() {
for (int index1 = hand.getSize(); index1 > 0; index1--) {
for (int index = 0; index < index1; index++) {
if (hand.get(index1).getRank() == hand.get(index).getRank())
{
Card c = hand.remove(index1);
Card d = hand.remove(index);
size = size - 2;
--index1; // adjust for removal of element at position index
System.out.println("Removed: " + c + " & " + d);
System.out.println("Player 1's hand:" + hand);
break;
}
}
}
}
public void initialPairs(){
对于(int index1=hand.getSize();index1>0;index1--){
对于(int-index=0;index
在代码方面,你到底想做什么?我不想弄明白你在想什么。假设每一手牌都有编号为0到3的牌,你在index1上的循环从4开始,所以hand.get(index1)=hand.get(4)将失败。当我使用此代码时,它在以下行返回java.lang.indexOutOfBoundsException:if(hand.get(index1.getRank()=+hand.get(index.getRank())
@MCsuchNsuch-Hm。也许外部循环应该从hand.getSize()-1
(这取决于get()
和getSize()的方式)
已实现,但我发布的代码可能是错误的。)。如果这不能解决问题,您可以尝试打印index
和index1
的值序列,以查看触发异常的值。好的,我们最近没有遇到错误,所以我想说您得到了正确的答案。此外,错误表明index1与大小相同。我们已经解决了ed各种各样的-1和东西…:/但是非常感谢您的尝试!!!!