java - 我正在使用方法在 switch 语句中创建一个简单的计算器,但它会直接进入默认值,即使我按正确的大小写

标签 java methods switch-statement calculator

我正在使用 switch 语句和方法制作这个简单的计算器程序。但是当用户按下任何选项(这是正确的)时,它不会读取大小写并直接进入默认大小写。

我以前做过同样的事情,但没有任何类文件或方法。我对方法不熟悉,所以我只是尝试做同样的事情,但它不能正常工作。

    NewClass cal = new NewClass();
    Scanner in = new Scanner(System.in);
    System.out.println("Press 1 for Division.\nPress 2 for Multiplication.\nPress 3 for Addition.\nPress 4 for Substraction.");
    char c = in.next().charAt(0);
    System.out.println("Enter First Value : ");
    int a = in.nextInt();
    System.out.println("Enter Second Value : ");
    int b = in.nextInt();
    switch (c){
        case 1:
            cal.division(a, b);
            break;
        case 2:
           cal.division(a, b);
            break;
        case 3:
            cal.add(a, b);
            break;
        case 4:
            cal.sub(a, b);
            break;
        default:
            System.out.println("Invalid entry.");
            break;
    }

输出:

Press 1 for Division.
Press 2 for Multiplication.
Press 3 for Addition.
Press 4 for Substraction.
Enter your selection : 3
Enter First Value : 
4
Enter Second Value : 
5
Invalid entry.
BUILD SUCCESSFUL (total time: 9 seconds)

最佳答案

不需要将用户输入转换为字符,因为 java 开关可以处理整数。以下代码将解决您的问题:

NewClass cal = new NewClass();
    Scanner in = new Scanner(System.in);
    System.out.println("Press 1 for Division.\nPress 2 for Multiplication.\nPress 3 for Addition.\nPress 4 for Substraction.");
    int c = in.nextInt();
    System.out.println("Enter First Value : ");
    int a = in.nextInt();
    System.out.println("Enter Second Value : ");
    int b = in.nextInt();
    switch (c){
        case 1:
            cal.division(a, b);
            break;
        case 2:
           cal.division(a, b);
            break;
        case 3:
            cal.add(a, b);
            break;
        case 4:
            cal.sub(a, b);
            break;
        default:
            System.out.println("Invalid entry.");
            break;
    }

关于java - 我正在使用方法在 switch 语句中创建一个简单的计算器,但它会直接进入默认值,即使我按正确的大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57192348/

相关文章:

java - 通话/连接到 Android 上的安全元素小程序 micro sd?

java - 在提交按钮内定义时如何获取 wicket id 的范围

java - 添加一个 ant 目标以从 jar 文件中运行一个类

javascript - 获取方法外部的变量(对象)

c - 为什么在这个 switch 语句中匹配 default 大小写?

javascript - JS - 在 switch 语句中使用多条件案例

java - 从 QTP/vbscript 调用 java 方法

java - 切换大于/小于

java - 错误消息 “Illegal Start of Expression”?

java - 带有 boolean 值的 Switch 语句不起作用?