java - 如何修复关于我的 switch 语句的输出?
问题描述
我在程序中的输出遇到了一些问题。应该发生的是用户将选择他们想要使用的方法。然后,程序将根据该选择执行 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;
}
解决方案
您正在将用户输入与错误的字符串进行比较。你让他输入“S”或“F”,然后将这个输入与“sum”和“fact”进行比较。
推荐阅读
- mongodb - 为 Parse Server 创建 MongoDB 索引的最佳策略?
- c - C中关于节点或链表的奇怪输出
- airflow - Airflow - 跳过未来的任务实例而不更改 dag 文件
- python - Tkinter 如何删除窗口的标题栏,但将程序的图标保存在任务栏中?
- google-sheets - 根据 Google 表格中的主库存列表自动填充值
- android - 我如何在动态布局中打开时间选择器对话框
- node.js - 尝试制作 reactjs 项目或初始化它时,Create-react-app 挂起
- python - Python检查TXT文件中的数字是否存在
- javascript - 在 Puppeteer 中使用 page.evaluate 函数进行高效抓取
- multithreading - JMeter 线程在他们应该完成之前完成