【问题标题】:Infinite Output in case Statement java在case语句java中无限输出
【发布时间】:2022-01-07 05:45:56
【问题描述】:

我正在接受来自用户的字符串形式的输入(包含 char 和 int)。我进一步将字符串划分为 char 和 int 并在 case 语句中使用 char,但我的 case 语句给了我无限循环。我我无法找出错误..

public static void main(String[] args) {
    
    Scanner sc=new Scanner(System.in);
    
    String str=sc.nextLine();
    
        String[] part = str.split("\\s+");
        
      do 
      { 
          
         switch(part[0])
         {
          case "AB":
              System.out.println("hi");
              int data=Integer.parseInt(part[1]);
              System.out.println(data);
              break;
          case "PR":
              System.out.println("printining");
              break;
          case "AE":
              System.out.println("AE");
               break;
          case "EXIT":
              System.exit(0);
              break;
         }
      }
      while(true);
        
}

【问题讨论】:

  • 您不会在循环内更改part;因此,除非您最初输入 EXIT,否则它将继续循环。
  • 为什么这里有一个循环?
  • @SotiriosDelimanolis 因为我想继续循环直到用户输入 EXIT 命令

标签: java while-loop switch-statement do-while


【解决方案1】:

您不会在循环内更改part;因此,除非您最初输入 EXIT,否则它将继续循环。

将循环上方的两行移到循环中:

do
{
    String str = sc.nextLine();

    String[] part = str.split("\\s+");

    // Rest of loop body.

【讨论】:

    【解决方案2】:

    break 语句退出 switch 而不是循环,循环条件始终为真!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-01
      相关资源
      最近更新 更多