Java 枚举和case语句。即使中断也不切换
我正在尝试切换状态,从开始状态开始。但是,当我输入进入失败状态或进入状态的输入时,两者都不起作用。我曾尝试按照之前的建议在代码中添加中断,但恐怕没有效果。还有其他解决办法吗Java 枚举和case语句。即使中断也不切换,java,enums,case,Java,Enums,Case,我正在尝试切换状态,从开始状态开始。但是,当我输入进入失败状态或进入状态的输入时,两者都不起作用。我曾尝试按照之前的建议在代码中添加中断,但恐怕没有效果。还有其他解决办法吗 import java.util.*; public class dfa { static State state; public enum State { START_STATE, GO_STATE, FAIL_STATE, }; dfa(State 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;
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语句中,如图所示,一旦找到匹配项,就会执行case并将控制流到switch语句的末尾
我不完全确定您想要完成什么,但是如果您想更新
状态
并再次输入开关,您必须添加一个循环。您是否希望如果您设置状态
,它会自动进入下一个状态?如果你是这么想的,那事情就不是这样了<代码>开关执行给定状态的语句,然后退出。然后,如果没有任何信息告诉它返回到开关
,它将不再查看状态
。我怀疑您想要添加一个循环,但是没有太多关于您需要完成什么的细节。如果确实添加了循环,请确保它不是无限循环。