我想切换状态。我首先在START_STATE开始。然后我提示用户是否进入FAIL_STATE或GO_STATE。然而,看起来他们是否输入了“去”(对于GO_STATE)失败(对于FAIL_STATE),其他情况都没有激活。什么是这个问题的解决方案?枚举不为换开关语句
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;
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");
line = input.next();
if(line.equals("go"))
{
state = State.GO_STATE;
System.out.print(" Go hello");
}
else if(line.equals("fail"))
{
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");
}
}
输出:
(When "go" is typed) Go hello made it here (When "fail" is typed) Fail hello made it here
添加了中断,但由于某种原因,程序未进入任一状态。 – JudgementFlame 2014-09-26 08:18:09