我想制作一个简单的计算器,这个计算器将计算平方米,计算一个计算器" pi"或任何你能想象到的东西。但我想在运行程序的开头调用,我想要使用的计算器。所以如果我运行程序,系统会问我是否要使用计算平方米或pi的计算器。例如输出:
我的问题是,我该怎么做?
答案 0 :(得分:1)
我能想到的两种方式,第一种是相当复杂但涉及各种潜在的用户输入,第二种方法是使用基本的编程概念,但它的功能有限。
使用this question中描述的任何方法。 (我是新的。如果提到这样的其他答案是违反规则的,请告诉我,请不要讨厌。)
示例代码:
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class StackTester {
public static void main(String[] args) {
Method method = null;
// set methodName equal to the name of the method to be called
String methodName = "hi";
StackTester cls = new StackTester();
Class c = cls.getClass();
try {
method = c.getMethod(methodName, int.class);
System.out.println("method = " + method.toString());
}
catch (SecurityException e) {
System.out.println("fail1");
}
catch (NoSuchMethodException e) {
System.out.println("fail2");
}
try {
System.out.println(method.invoke(cls, 8));
}
catch (IllegalArgumentException e) {
}
catch (IllegalAccessException e) {
}
catch (InvocationTargetException e) {
}
}
public int hi(int x) {
return x;
}
}
另一种方法是使用大量的if / else或switch / case与Scanner读取用户输入来调用您想要调用的所有方法名称。
只是建议将来参考:自己尝试一些研究!我学到了很多,只是想回答这个问题。
答案 1 :(得分:0)
您可以使用Scanner
。
例如:
Scanner in = new Scanner(System.in);
System.out.println("which calculator you want to use?");
String calculatorType = in.nextLine();
System.out.println("enter first number: ");
String firstNumber = in.nextLine();
System.out.println("enter second number: ");
String secondNumber = in.nextLine();
if(calculatorType.equals("SquareMeter")
//do something
System.out.println("Your answer is: " + doSomeCalculation(firstNumber, secondNumber));
在if语句中,您可以根据用户要求的计算调用不同的方法。在这种情况下,"SquareMeter"
将是doSomeCalculation()
,因此int doSomeCalculation(int a, int b){
return a*b;
}
看起来像这样:
{{1}}
希望这有帮助