0
我想切换状态,从开始状态开始。但是,当我输入要转入失败状态或转入状态的输入时,两者都不起作用。我曾尝试在代码中添加中断,但恐怕没有任何影响。其他解决方案?枚举和case语句。即使中断也不切换
import java.util.*;
public class dfa {
static State state;
public enum State
{
START_STATE,
GO_STATE,
FAIL_STATE,
};
dfa(State state)
{ state = this.state;}
/**
* @param args
*/
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String line;
int number;
state = State.START_STATE;
switch(state)
{
case START_STATE:
System.out.print("In start state \n ");
System.out.println("Which state you want to go to? \n");
number = input.nextInt();
if(number == 1)
{
state = State.GO_STATE;
System.out.print(" Go hello");
}
else if(number == 2)
{
state = State.FAIL_STATE;
System.out.println(" Fail hello ");
}
break;
case FAIL_STATE:
System.out.println("fail state");
break;
case GO_STATE:
System.out.println("go state");
break;
default:
System.out.println("Default");
break;
}
System.out.println("made it here");
}
}
你是否期待如果你设置了'state',那么它会自动进入下一个状态?如果这就是你的想法,那不会发生什么。 'switch'为给定状态执行语句,然后退出。然后,如果没有任何信息告诉它回到'switch',它就再也不会查看'state'。我怀疑你想添加一个循环,但没有很多关于你需要完成的细节。如果你添加一个循环,确保它不是一个无限循环。 – ajb 2014-09-27 00:13:50