我正在尝试为大学 gpa 制作一个计算器。我删掉了大约 20 个 if 语句,这些语句只说明每个字母的等级是什么。我为再次查看此内容的任何人修复了我的第一个程序。该程序现在可以运行,但无论我在 gpa 中键入什么字母,它返回的都是 2.0 。如果有人看到任何错误,将不胜感激……再次。谢谢
import java.util.Scanner;
public class universityGPA {
public static void main(String args[]){
int classes = 4;
int units[] = {3, 2, 4, 4};
double[] grade = new double[4];
double[] value= new double[4];
int counter = 0;
double total = 0;
double gpa;
String letter;
while(classes > counter){
Scanner gradeObject = new Scanner(System.in);
letter = gradeObject.next();
if(letter.equalsIgnoreCase("A+") || letter.equalsIgnoreCase("A")){
grade[counter] = 4;
}
if(letter.equalsIgnoreCase("F")){
grade[counter] = 0;
}
value[counter] = grade[counter] * units[counter];
counter++;
}
for(int i = 0; i < classes; i++ ){
total += value[i];
}
gpa = total/classes;
System.out.println("You gpa is " +gpa);
}
}
最佳答案
您忘记初始化等级
。 NullPointerException
告诉您 grade
是 null
。在语句 grade[counter] = 4;
中第一次尝试使用 grade
时会抛出异常。使用 new
分配尽可能多的空间。
关于java - 初学者 java,帮我修复我的程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7021321/