【问题标题】:How to use a String inside a Switch Statement in Java如何在 Java 中的 Switch 语句中使用字符串
【发布时间】:2017-05-03 05:57:38
【问题描述】:

当我运行代码时,我的输入字符串不会出现。首先它说当我把它放在我的 Main 方法中时它是不可用的。在我将它从我的 Main 方法中取出并将其放在 Public 类中之后,无法使用的问题就消失了。但是在运行代码时它仍然不会出现。

public class Number0to9 {    
  public static String input;

  public static void main(String[] args) {        
    tryagain: while (true) {
      System.out.print("Type a number between 0 and 9 : ");

      Scanner scan = new Scanner(System.in);          
      int x = scan.nextInt();
      int output = x;
      input = "You entered number: ";

      switch (x) {
        case 0:
          input += output;
          break tryagain;
        case 1:
          input += output;
          break tryagain;
        case 2:
          input += output;
          break tryagain;
        case 3: 
          input += output;
          break tryagain;
        case 4:
          input += output;
          break tryagain;
        case 5: 
          input += output;
          break tryagain;
        case 6: 
          input += output;
          break tryagain;
        case 7:
          input += output;
          break tryagain;
        case 8:
          input += output;
          break tryagain;
        case 9:
          input += output;
          break tryagain;
        default:
          System.out.println("Your number was bigger than 9");
          break;
      }   
    }        
  } 
} 

【问题讨论】:

  • 非常不清楚你在问什么 - 如果你需要在输出中看到一些东西,你最好打印出来......请查看帖子中的 minimal reproducible example 指导和 edit 代码以清楚地展示问题(即switch 不太可能与您的问题相关,尽管在标题和大量代码中提到了它)

标签: java string switch-statement


【解决方案1】:

应该是这样的?

public static void main(String[] args) {
        boolean digitEntered = false;
        String input = "You enetred number : ";
        while (digitEntered == false) {
            System.out.print("Type a number between 0 and 9 : ");
            Scanner scan = new Scanner(System.in);
            int x = scan.nextInt();

            if (x >= 0 && x <= 9) {
                digitEntered = true;
                input += x;
            } else {
                System.out.println("Your number was bigger than 9 ");

            }
        }
        System.out.println(input);
    }

【讨论】:

  • 工作完美,但没有办法让它与 Switch 语句一起工作吗?
  • 你可以做一个switch语句,感觉就是这样使用它的代码重复。
  • 好的,我发现我做错了什么。最后我没有在while循环之外打印出我的字符串。
【解决方案2】:

Java break 语句终止标记循环。并且您的字符串 input 包含其中的值。尝试在 while 循环之后访问它。

public class Number0to9 {

    public static String input;

    public static void main(String[] args) {

    tryagain : while (true) {
    System.out.print("Type a number between 0 and 9 : ");
    Scanner scan = new Scanner(System.in);
    int x = scan.nextInt();
    int output = x;
    input = "You enetred number : ";


    switch (x) {
        case 0:
            input += output;
                break tryagain;
        case 1:
            input += output;
                break tryagain;
        case 2:
            input += output;
                break tryagain;
        case 3: 
            input += output;
                break tryagain;
        case 4:
            input += output;
                break tryagain;
        case 5: 
            input += output;
                break tryagain;
        case 6: 
            input += output;
                break tryagain;
        case 7:
            input += output;
                break tryagain;
        case 8:
            input += output;
                break tryagain;
        case 9:
            input += output;
                break tryagain;
        default:
                System.out.println("Your number was bigger than 9 ");
            break;
    }   
    }
System.out.println(input);
} 
} 

【讨论】:

    【解决方案3】:
    input += output;
    

    只有当两个变量都是int(或任何其他算术变量类型)时,上述代码语句才能用于添加输入和输出。

    如果要连接输入和输出,首先要将输出转换为字符串。

    input = input + Integer.toString(output);
    

    在每种情况下进行此更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      • 2015-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多