【问题标题】:Restart the switch case statement重新启动 switch case 语句
【发布时间】:2015-04-27 05:33:15
【问题描述】:

希望我能在这里找到帮助,事实上,我设计程序让用户输入包含 0 或 1 的字符串值,然后出现菜单以帮助用户从 4 个选项中进行选择,我的问题是我无法在第一次使用后返回菜单显示因为在第一次选择之后程序无法运行任何选择... 再次感谢您

  Scanner input = new Scanner(System.in);
    System.out.print("Enter 0s or 1s Numbers  ");
    String binaryString = input.nextLine();// user must enter string value contains 0 or 1 
    convert.displayMenu();// call the display menu which contains 4 choices
    Scanner input2 = new Scanner(System.in);// the user select the 1 option from 4
    int select = input2.nextInt(); // to save what user enter it 
    // here is the switch statement im use it 
    switch (select) {
        case 1:
            input2.equals(1);
            convert.getBinary(binaryString);
            convert.displayMenu();
         break;
        case 2:
            input2.equals(2);
            convert.convertBtD(binaryString);
            convert.displayMenu();
            break;
        case 3:
            input2.equals(2);
            convert.convertBtO(binaryString);
            convert.displayMenu();
            break ;
        case 4:
            break;
    }
    while(select != 4);
    }

【问题讨论】:

  • 您的 switch 语句似乎需要在 while 循环中检查扫描仪是否有输入,可能是 while(input2.nextInt()) {...}
  • 谢谢保罗在第一次选择后运行案例时放了循环

标签: java menu switch-statement


【解决方案1】:

此循环重新启动 switch/case 语句:

inputloop: while(true) {
  int select = input2.nextInt();
  switch (select) {
    case 1:
        input2.equals(1);
        convert.getBinary(binaryString);
        break;
    case 2:
        input2.equals(2);
        convert.convertBtD(binaryString);
        break;
    case 3:
        input2.equals(2);
        convert.convertBtO(binaryString);
        break ;
    case 4:
        break inputloop;
  }
  convert.displayMenu();
}

这段代码可以重写为循环条件为select != 4,但这个更简洁(从我的角度来看)

【讨论】:

  • CoronA 谢谢你使用它的循环,它完美且工作良好
【解决方案2】:
boolean startLoop = true;
While(startLoop) {
switch(choice) {
case 1:
break;
case 2:
break;
case 3://exitChoice
startLoop = false;
break;

}

}

【讨论】:

    【解决方案3】:

    一个简单的解决方案可以这样实现:

        while(1){
        Scanner input2 = new Scanner(System.in);// the user select the 1 option from 4
        int select = input2.nextInt(); // to save what user enter it 
        switch(select)
        {
            case 1:
                input2.equals(1);
                convert.getBinary(binaryString);
                convert.displayMenu();
                break;
            case 2:
                input2.equals(2);
                convert.convertBtD(binaryString);
                convert.displayMenu();
                break;
            case 3:
                input2.equals(2);
                convert.convertBtO(binaryString);
                convert.displayMenu();
                break ;
            case 4:
                break;
        }
        if(select == 4)
            break;
    

    }

    【讨论】:

      【解决方案4】:

      你应该像这样单独调用这个方法:

          public void menu(){
              Scanner input = new Scanner(System.in);
              System.out.print("Enter 0s or 1s Numbers  ");
              String binaryString = input.nextLine();// user must enter string value contains 0 or 1 
              convert.displayMenu();// call the display menu which contains 4 choices
              Scanner input2 = new Scanner(System.in);// the user select the 1 option from 4
              int select = input2.nextInt(); // to save what user enter it 
              // here is the switch statement im use it  switch (select) {
                  case 1:
                      input2.equals(1);
                      convert.getBinary(binaryString);
                      convert.displayMenu();
                   break;
                  case 2:
                      input2.equals(2);
                      convert.convertBtD(binaryString);
                      convert.displayMenu();
                      break;
                  case 3:
                      input2.equals(2);
                      convert.convertBtO(binaryString);
                      convert.displayMenu();
                      break ;
                  case 4:
                      break;
      
                  case 5: 
                      System.out.println("Exit Point");
                      System.exit(0);
              } 
      menu();
      }
      

      我只是将这段代码添加到一个方法中,并在方法的末尾添加一个调用 menu()。我还创建案例 5 以退出应用程序。它是你的逻辑如何正确地做到这一点,但你有实现这一目标的主要大纲:)

      【讨论】:

      • 谢谢你,Sarz 我也会试试的
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-24
      • 2011-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-03
      • 1970-01-01
      相关资源
      最近更新 更多