Java 有限状态机中的返回语句

Java 有限状态机中的返回语句,java,return,state-machine,Java,Return,State Machine,有谁能告诉我,在有限状态机的状态中,返回语句的用途是什么?例如,我有一个足球运动员状态的代码: public class ChaseBall extends State<FieldPlayer> { private static ChaseBall instance = new ChaseBall(); private ChaseBall() { } //this is a singleton public static ChaseBal

有谁能告诉我,在有限状态机的状态中,返回语句的用途是什么?例如,我有一个足球运动员状态的代码:

public class ChaseBall extends State<FieldPlayer> {

    private static ChaseBall instance = new ChaseBall();

    private ChaseBall() {
    }

    //this is a singleton
    public static ChaseBall Instance() {
        return instance;
    }

    @Override
    public void Enter(FieldPlayer player) {
        player.Steering().SeekOn();
        }
    }

    @Override
    public void Execute(FieldPlayer player) {
        //if the ball is within kicking range the player changes state to KickBall.
        if (player.BallWithinKickingRange() && player.isReadyForNextKick()) {
            player.GetFSM().ChangeState(KickBall.Instance());
            return;
        }

        //if the player is the closest player to the ball then he should keep
        //chasing it
        if (player.isClosestTeamMemberToBall()) {
            player.Steering().SetTarget(player.Ball().Pos());

            return;
        }

        //if the player is not closest to the ball anymore, he should return back
        //to his home region and wait for another opportunity
        player.GetFSM().ChangeState(ReturnToHomeRegion.Instance());
    }

    @Override
    public void Exit(FieldPlayer player) {
        player.Steering().SeekOff();
    }
}
公共类ChaseBall扩展状态{
私有静态ChaseBall实例=新建ChaseBall();
私人追逐球(){
}
//这是一个单身汉
公共静态ChaseBall实例(){
返回实例;
}
@凌驾
公开无效进入(现场球员){
player.Steering().SeekOn();
}
}
@凌驾
公开无效执行(现场球员){
//如果球在踢球范围内,球员将状态更改为踢球。
if(player.ballWithinkingRange()和&player.isReadyForNextKick()){
player.GetFSM().ChangeState(KickBall.Instance());
返回;
}
//如果球员是离球最近的球员,那么他应该保持距离
//追逐它
if(player.isClosestTeamMemberToBall()){
player.Steering().SetTarget(player.Ball().Pos());
返回;
}
//如果球员不再离球最近,他应该回来
//去他家乡等待另一个机会
player.GetFSM().ChangeState(ReturnToHomeRegion.Instance());
}
@凌驾
公共无效出口(现场球员){
player.Steering().SeekOff();
}
}
我想知道是否有人能解释Execute()方法的前两个if语句中的return关键字的用途?
谢谢

在本例中,它主要是一系列else-if子句的格式替代。它在逻辑上等同于

if (<condition>) {
    <code>
} else if (<condition>) {
    <code>
} else {
    <code>
}

它只是退出功能。如果您知道状态及其转换,则无需检查其他状态/转换