为什么下面没有运行就结束了

package cm.edu.szpt.po;
import java.util.Scanner;
public class Main {
public static void main(String[]args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入第一个数字:");
double numA = sc.nextDouble();
System.out.println("输入第二个数字:");
double numB = sc.nextDouble();

    System.out.println("请输入要进行的运算法则(+-*/):");
    String algorithm = sc.nextLine();
    switch (algorithm) {
        case "+" -> {
            Add add = new Add(numA, numB);
            System.out.println(add.operate());
        }
        case "-" -> {
            Sub sub = new Sub(numA, numB);
            System.out.println(sub.operate());
        }
        case "*" -> {
            Mul mul = new Mul(numA, numB);
            System.out.println(mul.operate());
        }
        case "/" -> {
            Div div = new Div(numA, numB);
            System.out.println(div.operate());
        }
    }
}

}

我觉得你应该把 nextLine() 改成 next() 试一下,
另外, 加个default, default里面打印下 algorithm, 看看输入的到底是什么, 仔细看看algorithm左右两边有没有空字符

default -> System.out.println("-" + algorithm + "-");

switch case 语句语法格式如下:

switch(expression){
case value :
//语句
break; //可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句
}
你按照这个格式改一下你的代码运行一下

img