布尔和条件顺序

时间:2015-04-25 21:01:22

标签: java boolean logical-operators

所以下面我有和方法如果满足第二个条件则返回true。但是,如果满足第一个条件,我想返回false。但是,我得到的问题是它总是返回false。

public static boolean matching(Request a, Request b) {
        if (a.info[2].equals("*") & b.info[2].equals("*")) {
            return false;
        }
        return ((a.info[1].equals(b.info[1]) && a.info[2].equals(b.info[2])) || (a.info[1]
                .equals(b.info[1]) && a.info[2].equals("*") || b.info[2]
                    .equals("*")));

    }

1 个答案:

答案 0 :(得分:-1)

不试图理解你的整个条件句,我猜你在这里有错字.-

if (a.info[2].equals("*") & b.info[2].equals("*")) {

你的意思是

if (a.info[2].equals("*") && b.info[2].equals("*")) {

代替。

您可以查看this old thread以获取更多信息。

修改

如果问题仍然存在,可能是第二个条件句有问题。您可以做的最好的事情是设置断点以在运行时显示所有相关值;你应该很容易看出出了什么问题。