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语句的末尾


我不完全确定您想要完成什么,但是如果您想更新
状态
并再次输入开关,您必须添加一个循环。

您是否希望如果您设置
状态
,它会自动进入下一个状态?如果你是这么想的,那事情就不是这样了<代码>开关执行给定状态的语句,然后退出。然后,如果没有任何信息告诉它返回到
开关
,它将不再查看
状态
。我怀疑您想要添加一个循环,但是没有太多关于您需要完成什么的细节。如果确实添加了循环,请确保它不是无限循环。