我正在编写此程序,供用户进行数学测试。我现在面临并一直试图解决的问题是如何在测试结束时显示最终分数。
我有一个计数器,每个正确答案的分数都会增加,但是我(最后)如何显示最终/总分数?任何帮助表示赞赏。
这是三个类之一。
import java.util.Scanner;
public class Questions {
Scanner scan = new Scanner(System.in);
int answer = 0;
int point = 0;
String correct = "Correct";
public void pointers(){
point++;
System.out.println(point + " point added to total score");
}
public void totalPoints(){
pointers();
}
public void showQuestions(){
System.out.println("\n--------------\nQuestion #1: 1+1 = ? ");
answer = scan.nextInt();
if(answer == 2){
System.out.println(correct);
pointers();
}else{
System.out.println("Wrong!");
}
System.out.println("\nQuestion #2: 340-23 = ? ");
answer = scan.nextInt();
if(answer == 317){
System.out.println("Correct!");
pointers();
}else{
System.out.println("Wrong!");
}
System.out.println("\nQuestion #3: 900/3 = ? ");
answer = scan.nextInt();
if(answer == 300){
System.out.println("Correct!");
pointers();
}else{
System.out.println("Wrong!");
}
System.out.println("\nQuestion #4: 23*2 = ? ");
answer = scan.nextInt();
if(answer == 46){
System.out.println("Correct!");
pointers();
}else{
System.out.println("Wrong!");
}
System.out.println("\nQuestion #5: -4+6 = ? ");
answer = scan.nextInt();
if(answer == 2){
System.out.println("Correct!");
pointers();
}else{
System.out.println("Wrong!");
}
}
}
最佳答案
问题是您要先获取输入,然后再要求年龄。当您键入keyboard.nextInt()时,它会立即输入。所以问题在这里:
*int age = keyboard.nextInt();
* System.out.println("Age: " + age);
*age = keyboard.nextInt();
我的建议是只删除第一个keyboard.nextInt():
例:
System.out.println(“ \ nName:” +名称);
名称= keyboard.nextLine();
System.out.println("Age: " + age);
final int age = keyboard.nextInt();
就是这样。请小心放置您的方法调用的位置,例如它们应该在您的println()之后。