-2

固定的。为了让声明以我想要的方式评估,我必须这样写:

public static Boolean pushCard(String S1, String S2) {
    Boolean result = false; 

    if ((S1.equals("fire")  || S1.equals("wind") || S1.equals("water")))
        if (!S2.equals("fire") && (!S2.equals("water") && (!S2.equals("fire"))))
            result = true;

    return result;
} //end push card method

我不知道这种比较是否会引起问题。我使用 == 而不是 .equals 但后来我了解到这是错误的编写方式。谢谢您的帮助!

public static Boolean pushCard(String S1, String S2) {
    Boolean result = false; 

    if ((S1.equals("fire")  || S1.equals("wind") || S1.equals("water")))
        if (!S2.equals("fire") || (!S2.equals("water") || (!S2.equals("fire"))))
            result = true;

    return result;
} //end push card method
4

4 回答 4

3

从语法上讲,您的代码将编译得很好,并且您使用.equals()方法比较字符串的方式是正确的。您对!运算符的使用也是正确的。

但不能保证您的代码不会出现逻辑错误。

于 2013-08-08T02:36:19.793 回答
1

我能看到的唯一问题是你在第二个陈述"fire"中提到了两次。if否则,您可能遇到的任何问题都可能与您的逻辑错误有关,因为您的语法非常正确并且您的用法是正确的。

于 2013-08-08T02:37:15.903 回答
1

目前还不清楚你在问什么。第二个if永远是true。您可能需要:

if ((S1.equals("fire")  || S1.equals("wind") || S1.equals("water")))
    if (!S2.equals("fire") && (!S2.equals("water") && (!S2.equals("wind"))))
        result = true;
于 2013-08-08T03:15:39.653 回答
0
  public static Boolean pushCard(String S1, String S2)    
{
    Boolean result = false; 

    if (S1.equals("fire")  || S1.equals("wind") || S1.equals("water"))
        {
           (!S2.equals("fire") || !S2.equals("water"))
            result = true;
        }

    return result;

}

/end 推卡方法

  1. 你在第一个 if 语句中有一对额外的括号。

  2. 我相信当 if 语句中的代码大于一行时,它需要括号 {}。

  3. 您的第二个 if 语句可以更改为 !S2.equals("fire") || !S2.equals("水")

于 2013-08-08T02:45:48.000 回答