我写得好吗? .equals AND!.equals if statement

时间:2013-08-08 02:31:56

标签: java if-statement

固定。为了获得评估我想要的方式的陈述,我必须这样写:

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 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

答案 2 :(得分: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;

答案 3 :(得分: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 push card method

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

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

  3. 你的第二个if语句可以改为!S2.equals(“fire”)|| !S2.equals(“water”)