逻辑OR条件不按预期工作

时间:2011-09-21 03:36:32

标签: boolean-logic

在我的Decision类中,我有3个条件语句如下:

GeneralCondition类包含promptUser(user)。

class Decision extends GeneralCondition{
    private boolean hasChildrens(User user){
        return user.getHaveChilds();
    }

    private boolean hasSpouse(User user){
        return user.getHaveSpouse();
    }

    private boolean newUser(User user){
        return user.isNewUser();
    }

    boolean interruptUser(User user){
        boolean hasChildrens=boolean hasChildrens(User user);
        boolean hasSpouse= boolean hasSpouse(User user);
        boolean newUser= newUser(User user);
        return hasChildrens||hasSpouse||newUser;
    }
}

//下面是类caalling interruptUser():

类UserCondition扩展了GeneralCondition {

GeneralCondition gcon = new GeneralCondition();

如果(gcon.interruptUser(用户)){

//重定向到条件PopUp Flow;

}

否则

{

//重定向到主页;

}

}

interruptUser(user)由其他对象调用。当我每次返回False时都使用上述所有3个条件,即使它是真的;当我只使用2个条件时,它按预期工作。请说明可能的原因。

2 个答案:

答案 0 :(得分:1)

好像你正试图用Java编程语言测试这个程序。问题是你的代码不正确,最不可能编译。

答案 1 :(得分:0)

试试这个。该函数需要传入User对象,然后将该对象传递给需要它的每个测试函数。

boolean interruptUser(User user){
    boolean hasChildrens = hasChildrens(user);
    boolean hasSpouse = hasSpouse(user);
    boolean newUser = newUser(user);
    return hasChildrens || hasSpouse || newUser;
}