Java 避免重复调用同一方法

Java 避免重复调用同一方法,java,Java,我正在为我的Java入门课程做一个项目。我提交了代码,评审员说我需要重写以下内容: public void move() { if (iCanWin() > -1) { moveOnColumn(iCanWin()); } else if (theyCanWin(0, 0, false) > -1) { moveOnColumn(theyCanWin(0, 0, false)); else {

我正在为我的Java入门课程做一个项目。我提交了代码,评审员说我需要重写以下内容:

public void move()
   {
   if (iCanWin() > -1)
   {
       moveOnColumn(iCanWin()); 
   }
   else if (theyCanWin(0, 0, false) > -1)
   {
        moveOnColumn(theyCanWin(0, 0, false)); 
    else
   {
        moveOnColumn(brilliantMove()); 
   }
 }



int nextMove = iCanWin();
if(nextMove > -1) {
 moveOnColumn(nextMove);
} else ...

我不知道接下来会发生什么。。。评论员说,这将避免重复调用相同的方法。

如果不是,通常在声明中

  if (check a condition is true?)
 {
   moveOnColumn(iCanWin()); //do something
 }
 else if (other condition is true?) 
 {
    moveOnColumn(theyCanWin(0, 0, false)); //do something
  else//otherwise
  {
    moveOnColumn(brilliantMove());  //if previous condition doesn't be true
  almost one of them this line go to be execute
 }

如@ajb所述,只要在可能的情况下删除重复呼叫即可

public void move(){
    int nextMove = iCanWin();
    if (nextMove <= -1){
        nextMove = theyCanWin(0, 0, false);
        if(nextMove <= -1){
            nextMove = brilliantMove();
        }
    }
    moveOnColumn(nextMove); 
}

你能把你的帖子移到你在正确的轨道上吗。重写if语句,但将值分配给nextMove,而不是对其调用moveOnColumn。然后,在最后,移动ColumnNextMove。谢谢ajb。这是有道理的。我这么做了,它成功了。如果你不感谢我,你可以随意接受我的回答。这完全有道理。非常感谢。这就是我所做的。int nextMove=我赢了;如果nextMove>-1{moveOnColumnnextMove;}否则{nextMove=theyCanWin0,0,false;//如果我不确定如果nextMove>-1{moveOnColumn brilliantMove;//如果我们两个都不能赢,那么就做出了一个精彩的举动}@TSgtKPF您能在回答您的问题时,将其中一个答案标记为已接受吗