2011-09-21 30 views
-2

在我的決策類不工作,我有3個條件語句象下面這樣:邏輯OR條件如預期

GeneralCondition類包含promptUser(用戶)。

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 =新GeneralCondition();

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

//重定向到調節彈出流;

}

其他

{

//重定向到主頁;

}

}

interruptUser(user)被其它對象調用。當我如上所述使用全部3個條件時,即使它是真的,它也會返回False;當我只使用2條件時,它按預期工作。請建議可能是什麼原因。

+0

這是什麼語言? –

+0

@DavidSchwartz:它在Java1.5 – kmme

回答

1

好像你正試圖用Java編程語言來測試這個程序。問題在於你的代碼不正確,並且很可能永遠不會編譯。

+0

你的驅動程序類在哪裏?那麼User類定義呢? –

+0

您需要粘貼所有源文件,包括驅動程序以找出錯誤所在。 –

0

試試這個。該函數需要傳入一個User對象,然後將該對象傳遞給每個需要它的測試函數。

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

就像你寫的一樣。我只是錯過了發佈。但是當我全部使用這三個結果時,結果總是錯誤的當試用2條件時它的工作正常。 – kmme

+0

這聽起來像你鍵入你的代碼,而不是複製和粘貼它。請複製並粘貼EXACT代碼,否則我們浪費時間搞清楚你在哪裏搞砸了:) –