代码之家  ›  专栏  ›  技术社区  ›  Michael K.

在switch语句中使用数字和字母[关闭]

  •  -1
  • Michael K.  · 技术社区  · 7 年前

    我想做一个简单的事情,我可以用“q”键退出我的程序。我甚至不确定这是否可能,因为我的搜索并没有同时给我两个,只是其中一个或另一个。

        int var = in.nextInt();
    
            switch (var)
            {
                case 1:
                    System.out.println("Enter num");
                    long num = in.nextLong();                  
                    a.getPrime(num);
                    break;
                case "q":
                    System.out.println("Thanks for using");
                    System.exit(0);
                    break;
    

    4 回复  |  直到 7 年前
        1
  •  1
  •   Tim Biegeleisen    7 年前

    A switch 语句在给定的时间只能对一种类型的一个变量进行操作。您可以尝试提示用户输入字符串:

    String var = in.next();
    
    switch(var) {
        case "1":
            System.out.println("Enter num");
            long num = in.nextLong();                  
            a.getPrime(num);
            break;
    
        case "q":
            System.out.println("Thanks for using");
            System.exit(0);
            break;
    
        default:
    }
    
        2
  •  1
  •   BIRTHSTONE    7 年前

        String var = in.nextLine();
    
        switch (var)
        {
            case "1":
                System.out.println("Enter num");
                long num = in.nextLong();                  
                a.getPrime(num);
                break;
            case "q":
                System.out.println("Thanks for using");
                System.exit(0);
                break;
    
        3
  •  0
  •   Michael K.    7 年前
        String var = in.next();
    
        switch (var)
        {
            case "1":
                System.out.println("Enter num");
                long num = in.nextLong();                  
                a.getPrime(num);
                break;
            case "q":
                System.out.println("Thanks for using");
                System.exit(0);
                break;
    
        4
  •  0
  •   Amit Kumar Lal    7 年前

    这是一个迟来的答复,只是以防万一

    public static void main(String...strings) throws IOException {  
            getValidInput();
        }
    
        private static void getValidInput() throws IOException {
            //Enter data using BufferReader 
            BufferedReader reader =  new BufferedReader(new InputStreamReader(System.in));        
            // Reading data using readLine 
            String input = reader.readLine(); 
            // Printing the read line 
            System.out.println("Entered String is :: "+input);   
            switch (input)
            {
            case "q":
                System.out.println("Thanks for using");
                System.exit(0);
            default:
                if(input.matches("[0-9]*")){
                    int num = Integer.parseInt(input);                  
                    System.out.println("Is Number Prime :: "+isPrime(num));
                }else{
                    System.out.println("Enter a valid number");
                }
                getValidInput();
            }
        }
    
        public static boolean isPrime(int n) {  
            if (n <= 1) {  
                return false;  
            }  
            for (int i = 2; i < Math.sqrt(n); i++) {  
                if (n % i == 0) {  
                    return false;  
                }  
            }  
            return true;  
        }