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

I am creating a simple calculator in switch statement using methods but it straight goes to default, even if i press correct case

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

我以前做过同样的事情,但没有任何 class 文件或方法。我是方法的新手,所以我只是尝试做同样的事情,但它无法正常工作。

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