我目前正在编写一个包含测试的程序。当用户单击提交时,它要么打印出正确的要么不正确的,然后转到不同的类。除了这样做之外,如果答案正确,我还想将 1 添加到变量中。
我无法解决的是如何在不同的类中执行此操作,因为需要为保存在不同类但在同一个项目中的所有问题添加 1 或 0。
我目前正在编写一个包含测试的程序。当用户单击提交时,它要么打印出正确的要么不正确的,然后转到不同的类。除了这样做之外,如果答案正确,我还想将 1 添加到变量中。
我无法解决的是如何在不同的类中执行此操作,因为需要为保存在不同类但在同一个项目中的所有问题添加 1 或 0。
每个问题都是一个单独的类,有什么理由吗?似乎您可以有一个包含实例变量的 Question 类,例如
public class Question{
private String text; //the question itself
private String[] choices; //the choices if this is a multiple-choice question
private int answer; //the index in choices that is the correct answer
//constructor, accessors, mutators
public String toString(){
String retval = this.text+"\n";
for(int x=0;x<choices.length;x++){
char c = 'a'+x; //this will give characters going alphabetically from 'a'
retval+=c+") "+choices[x]+"\n";
}
return retval;
}
}
然后你可以有一个带有 main 方法的 Test 类。
public class Test{
public static void main(String args[]){
Question[] questions = {
new Question("What is 1+1?", new String[]{"2", "3", "4"}, 0),
//other questions here
}
int total=0;
Scanner input = new Scanner(System.in);
for(Question q: questions){
System.out.println(q.toString());
int ans = input.nextLine().charAt(0)-'a';
if(q.getAnswer()==ans){
total++;
}
}
}
}
这种做你想要的吗?
任何课程都引用了这些问题,都应该遍历它们并总结出正确的问题。如果您的问题不是从同一个类继承的,请创建一个名为 Question 的接口,该接口具有您可以调用的 isAnswerRight() 方法或类似的方法。
您想要一个具有公共最终静态类和变量的不同类。
像这样的东西:
public class Counter {
private static int count=0;
public static int add() {
return count++;
}
}
您可能还需要一个吸气剂。
此计数器在每个单独的类中没有上下文。它仅在您管理正在运行的这些测试的代码中具有上下文。因此,在这个管理器类中,您有一个变量,每次测试完成时您都会增加一个变量,并且您检测到它是正确的。