如果我在if语句中检查方法是否返回true,那么方法中的实际代码是否会被执行?

时间:2014-01-17 20:53:12

标签: java

好吧..我有一个方法,基本上检查玩家是否可以购买该字段,如果他可以然后将他设置为所有者并返回true。我所指的方法是if语句中的buyFieldFromBank。

但我想检查我的方法是否返回true,如果确实如此,请询问用户是否要购买。我真的可以这样做吗?或者代码是否已经将他设置为if语句中的所有者?或者只是“检查”它是否变为真,而不实际执行代码?

if(landRegistry.buyFieldFromBank(currentPlayer, newPosID)==true){
                    if(GUI.getUserButtonPressed(currentPlayer.getName() + ", vil du købe " + newPosition.getFieldName() +  "Ja", "Nej")=="Ja"){
                        landRegistry.buyFieldFromBank(currentPlayer, newPosID);

2 个答案:

答案 0 :(得分:3)

一些明显的问题:

1)您正在使用==而不是.equals来比较字符串中的字符串,如果在这里讨论该问题的话,那就是Link

2)通过调用landRegistry.buyFieldFromBank您正在执行该方法,因此它已经完成。您需要一个像landRegistry.isUserEligible(currentPlayer,newPosId)这样的方法来检查第一个if语句。如果它同时通过了第一个&它应该调用buyFieldFromBank方法的次要条件。如果第二个if应该属于isUserEligible方法调用,也值得考虑;如果它是确定资格的逻辑的一部分,它可能最适合那里。

3)如果您正在调用的方法返回布尔值,则第一个if的== true部分是多余的。所以你可以放弃那个部分,让方法自己调用。

答案 1 :(得分:1)

如果您使用.调用方法,则始终执行该方法。它还有什么用呢?你应该改变你的设计。