在switch语句中使用数字和字母

时间:2018-12-14 05:32:32

标签: java switch-statement

我想做一个简单的事情,使我可以使用“ 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;

如您所见,我将var设置为获取一个整数,该整数显然不能接受字母。有什么方法可以解决这个问题吗?还是我必须处理一下?

4 个答案:

答案 0 :(得分:1)

更改代码

    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;

答案 1 :(得分:1)

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 :(得分:0)

    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;

答案 3 :(得分:0)

这是一个很晚的答案,但以防万一

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;  
    }