Java 如何修复有关switch语句的输出?

Java 如何修复有关switch语句的输出?,java,input,switch-statement,output,java.util.scanner,Java,Input,Switch Statement,Output,Java.util.scanner,我的程序输出有点问题。应该发生的是,用户要选择他们想要使用的方法。然后,程序将根据该选择遍历一个switch语句,并为用户输入的任何方法和值输出相应的和或积 但是,程序显示菜单选择,但仅输出错误消息。我犯这个错误已经有一段时间了,但我真的不知道我做错了什么。我请求你原谅我的无知,因为我没有编程太久 import java.util.Scanner; public class Sum { public static void main(String[] args) {

我的程序输出有点问题。应该发生的是,用户要选择他们想要使用的方法。然后,程序将根据该选择遍历一个switch语句,并为用户输入的任何方法和值输出相应的和或积

但是,程序显示菜单选择,但仅输出错误消息。我犯这个错误已经有一段时间了,但我真的不知道我做错了什么。我请求你原谅我的无知,因为我没有编程太久

import java.util.Scanner;
public class Sum {
    public static void main(String[] args)
    {
        String sum = "S";
        String factorial = "F";

        Scanner scan = new Scanner(System.in);
        System.out.println("Enter " + sum + " to use the sum method or " + factorial + " to use the factorial method.");
        String userSelection = scan.next();

        switch (userSelection.toLowerCase()) {
            case "sum":
                System.out.println("Enter the number you want to use: ");
                int userValue = scan.nextInt();
                int userSum = sum(userValue);
                System.out.println("The resulting value for the sum method is: " + userSum);
                break;

            case "fact":
                System.out.println("Enter the number you want to use: ");
                int userFact = scan.nextInt();
                int userFactorial = fact(userFact);
                System.out.println("The resulting value for the factorial method is: " + userFactorial);
                break;
            default:
                System.out.println("ERROR: Invalid choice.");
            }
            scan.close();
    }
    public static int sum(int num) {
        int sum = 0;
        for (int i = 1; i <= num; i++) {
            sum = i + sum;
        }
        return sum;
    }
    public static int fact(int num) {
        int fact = 1;
        for (int i = 1; i <= num; i++) {
            fact = i * fact;
        }
        return fact;
    }
import java.util.Scanner;
公共类金额{
公共静态void main(字符串[]args)
{
字符串sum=“S”;
String factorial=“F”;
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入“+sum+”使用求和方法或“+factorial+”使用阶乘方法”);
字符串userSelection=scan.next();
开关(userSelection.toLowerCase()){
案例“金额”:
System.out.println(“输入要使用的号码:”);
int userValue=scan.nextInt();
int userSum=sum(userValue);
System.out.println(“求和方法的结果值为:“+userSum”);
打破
案例“事实”:
System.out.println(“输入要使用的号码:”);
int userFact=scan.nextInt();
int userFactorial=fact(userFact);
System.out.println(“factorial方法的结果值为:“+userFactorial”);
打破
违约:
System.out.println(“错误:选择无效”);
}
scan.close();
}
公共静态整数和(整数){
整数和=0;

对于(int i=1;i您正在将用户输入与错误的字符串进行比较。您要求他键入“S”或“F”,然后将此输入与“sum”和“fact”进行比较。

您要求用户输入“S”或“F”,为什么要将输入与“sum”和“fact”进行比较然后呢?啊,我知道我做错了。谢谢你的帮助!不是你的问题,而是注意到
1
n
的数字之和是
((n+1)*n)/2
(在小学)。