java - 如何根据许多不同的潜在选项检查输入,每个选项在 Java 中都有单独的输出?
问题描述
目前我正在尝试制作一个程序,该程序将要求输入元素周期表中的元素,然后输出有关该元素的一些信息。我最初的想法是为它创建一个方法,然后使用每个元素的不同信息多次调用该方法,但我现在明白为什么这不起作用了,因为如果我首先有锂的方法,它将只接受锂的输入。如果没有大量几乎相同的 if 语句,我怎么能做到这一点?我对 Java 很陌生,所以一个简单的解释如何以及为什么将不胜感激。
import java.util.Scanner;
public class PeriodicTable {
public static void askForElement(String symbol, String name, String group, Float weight) {
do {
Scanner reader = new Scanner(System.in);
String input = reader.nextLine();
if(input.trim().equalsIgnoreCase(symbol) || input.trim().equalsIgnoreCase(name)) {
System.out.println("Element: " + name + " (" + symbol + ")" + "\nGroup: " + group + "\nAtomic Weight: " + weight);
break;
} else {
System.out.println("Please input a valid symbol or name of an element.");
continue;
}
} while (true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Please input the name or symbol of an element in the periodic table. ");
askForElement("Li", "Lithium", "Alkali Metals", (float) 6.941);
askForElement("Fe", "Iron", "Transition Metals", (float) 55.933);
}
}
解决方案
推荐阅读
- android - 以编程方式更改 Drawable 的背景,保持圆角半径
- javascript - Lerna 能否根据 Conventional Commits 规范修改预发布版本?
- react-native-svg - React Native 忽略 SVG 组件上设置的宽度 100%,但它确实适用于 React Native Web
- java - 能否使用 Flutter MethodChannel 从 Java 返回原生地图
- wordpress - 如何在用户列表 wordpress 中添加昵称?
- extjs - ExtJS 7:如何不同加载无法捆绑的包资源
- performance - react-navigation BottomTabNavigator 在某些 Android 设备上非常慢
- python - 使用理解创建字典列表时如何省略键和值
- coq - 在 Coq 的大于命题中使用等价定理
- android - 如何为谷歌助手使用带有自定义 DialogFlow 操作的 android deeplink?