java - 得到 0 输出而不是正确的输出

标签 java

我可以输入但在输出中,我得到的结果为零。我使用两门类(class),一门是主要的,是日志,另一门是成绩计算。在成绩计算器中,我编写了方法和构造函数,在日志中,类通过构造函数调用这些方法。

import java.util.Scanner;

public class LogBook  { 
    public static void main(String[] args) {
        GradeCalculation g = new GradeCalculation();
        g.Askmarks();
        g.finalmark();
    }
}

import java.util.Scanner;

public class GradeCalculation {
    Scanner kb = new Scanner(System.in);

    private double quiz, midsemester, appliedproject, finaltest, finalmarks;

    GradeCalculation(double quiz, double midsemester, double appliedproject, double finaltest, double finalmarks){
    }

    GradeCalculation(){

    }

    public void Askmarks(){
        System.out.print("Enter the QUIZ marks: ");
        double quiz = kb.nextDouble();
        System.out.print("Enter the midsemester marks: "); 
        double midsemester = kb.nextDouble();
        System.out.print("Enter the appliedproject: ");
        double appliedproject = kb.nextDouble();
        System.out.print("Enter the finaltest: ");  
        double finaltest = kb.nextDouble();
    }

    public void finalmark(){
        finalmarks= 0.1*(quiz)+0.2*(midsemester)+0.4*(appliedproject)+0.3*(finaltest);
        System.out.print("Enter the final: " + finalmarks);  
    }   
}

最佳答案

问题在于您在 Askmarks 中定义局部变量

double quiz = kb.nextDouble();
...
double finaltest = kb.nextDouble();

它们不会影响字段

private double quiz, midsemester ,appliedproject ,finaltest,finalmarks;

因此,在 finalmark 中,您将获得每个 double 字段的默认值,即 0.0

解决方案是设置字段而不是初始化局部变量

this.quiz = kb.nextDouble();
...
this.finaltest = kb.nextDouble();

关于java - 得到 0 输出而不是正确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55666518/

相关文章:

java - 存储库RestExceptionHandler : object is not a managed entity

java - 如何在程序生成的地牢中找到房间中的门数量?

java - 如何提高窗口中cmd命令的性能

应用程序启动方法中未指定 Controller 的Javafx错误异常

java - 当忙于旋转的Java线程绑定(bind)到物理内核时,是否会因为到达代码中的新分支而发生上下文切换?

java - 如何让这个程序在之后终止

java - 如何在处理中使用 libfreenect java 包装器

java - 格式化固定格式的文本文件行

java - isSelected 不为 JRadioButton 返回 true 或 false

java - Android 的最佳 OpenGL ES 语法