java - 初学者 java,帮我修复我的程序?

标签 java arrays java.util.scanner

我正在尝试为大学 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 告诉您 gradenull。在语句 grade[counter] = 4; 中第一次尝试使用 grade 时会抛出异常。使用 new 分配尽可能多的空间。

关于java - 初学者 java,帮我修复我的程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7021321/

相关文章:

java - 如何在 JBoss 中配置 SQL Server 数据源以使用特定的 Active Directory 用户进行连接?

java - 无法在基本类型 double 上调用 set Double(Double)

sql - 在 PostgreSQL 中使用 Jsonb_array_elements_text() 的 2 种方法

java - 循环不执行多次

java - 如何在 while 循环中使用 .nextInt() 和 hasNextInt()

java - 即使任务尚未完成,如何停止执行程序服务线程?

java - 对象传输完成后,AWS S3 TransferManager 不会退出

java - 如何在 Java 8 中使用 CSV 值作为构造函数参数

java - 如何将 SourceDataLine 的内容写入文件?

php - 如何以编程方式在 WooCommerce 中添加新的自定义产品属性?