0

问题是关于我的 if 语句。我正在比较三个相同类型的值,但我得到一个错误,例如“参数类型 == 未定义布尔、int 类型”问题是,如果我更改代码以使用 && 分别比较值.. 所以 value == value1 && value = value2,我没有收到错误。有什么不同?

Card[] cardsIn = cards;
    boolean threeOfAKindEval = false;
    //the for loops runs through every possible combination of the 5 card array.  It starts at
    //0,0,0 and ends at 5,5,5/  Inside  the last for loop, I check for a three of a kind
    //My if statement also checks to make sure I am not comparing the same card with
    //itself three times 
    for(int index = 0; index < cards.length; index++){
        for(int indexCheck = 0; indexCheck < cards.length;indexCheck++){
            for(int indexCheckThree = 0; indexCheckThree < cards.length; 
                    indexCheckThree++){
                if(cardsIn[index].getValue() == cardsIn[indexCheck].getValue()  == cardsIn[indexCheckThree].getValue())
                    threeOfAKindEval = true;
            }
        }
    }
4

3 回答 3

2

您的代码需要在这里修改为傻瓜:

if(cardsIn[index].getValue() == cardsIn[indexCheck].getValue() &&  cardsIn[index].getValue()  == cardsIn[indexCheckThree].getValue())

现在它应该可以工作了

于 2013-11-10T18:38:36.643 回答
2

==比较相同类型的两个参数并返回布尔结果。

  cardsIn[index].getValue() == cardsIn[indexCheck].getValue()  == cardsIn[indexCheckThree].getValue())

被评估为

  bool temporalBool = cardsIn[indexCheck].getValue()  == cardsIn[indexCheckThree].getValue())
  bool finalBool = cardsIn[indexCheck].getValue()  == temporalBool // <-- left side int, right side bool

运算符执行布尔类型的&&逻辑与,所以它是你需要的。

 cardsIn[index].getValue() == cardsIn[indexCheck].getValue()  && cardsIn[index].getValue() == cardsIn[indexCheckThree].getValue()

被评估为

 bool temporalBool1 = cardsIn[index].getValue() == cardsIn[indexCheckThree].getValue()
 bool temporalBool2 = cardsIn[index].getValue() == cardsIn[indexCheck].getValue()  
 bool result = temporalBool1 && temporalBool2
于 2013-11-10T18:38:56.020 回答
0

您的代码需要在这里修改为傻瓜:

if(cardsIn[index].getValue() == cardsIn[indexCheck].getValue() &&  cardsIn[index].getValue()  == cardsIn[indexCheckThree].getValue())

现在它应该可以工作了

在你的代码中

if(cardsIn[index].getValue() == cardsIn[indexCheck].getValue()  == cardsIn[indexCheckThree].getValue())

第一次比较返回一个布尔值(true/false),然后再次将该布尔值与一个整数值进行比较,这就是您收到此错误的原因

于 2013-11-10T18:43:23.087 回答