我正在做一些作业,我想到了一个很酷的方法来让它更容易标记。 我们得到一张包含 10 个问题的工作表,我们必须编写一些代码来打印它要求的任何内容。
例如,可以打印出数字 1-100,我们将使用 for 循环 为了保持代码的可读性,我一直在使用函数,例如:
public static void main(String[] args) {
question1();
}
private static void question1() {
for(int i=1; i<=100; i++) {
System.out.println(i);
}
}
我的问题是,是否可以在代码中插入用户输入的变量?
有点像这样
Scanner input = new Scanner(System.in);
int question = input.nextInt();
question[question]();
然后如果用户输入“2”,它将运行“question2();”
我知道可能有更简单的方法可以做到这一点,但我隐约记得不久前学习过这样的东西,但我在网上找不到任何东西,可能是因为这样做被称为我不知道的东西,所以我只是有点感兴趣.
提前致谢!
我没有尝试太多,因为我真的不知道,我尝试过将变量放在引号或括号中以及很多东西,但我真的不知道。我希望它会使用正确的函数,但它只是给了我一个错误,显然因为它不是 java 的工作方式
您的问题归结为如何将字符串映射到要调用的方法。 有多种方法,按复杂程度排列:
是一系列
if
语句。
if (name.equals("question1")) {
question1();
} else (name.equals("question2")) {
question2();
} ...
使用
switch
声明
switch (name) {
case "question1": question1(); break;
case "question2": question2(); break;
...
}
上述内容的其他变体,使用显式
HashMap
将名称映射到(例如)方法引用,然后调用方法引用。
Reflection ...您在类的
Class
对象中查找方法名称以给出 Method
对象,然后通过该对象调用方法。
对于初学者来说,1)或2)就可以了。 您很可能还没有学到足够的知识来理解 3) 和 4)。