有人可以在平均程序上帮助分析我的java代码吗?

时间:2016-10-07 16:47:49

标签: java

大家好,我已经开始在线学习Java两周了,但是当我看到这些教程时,我觉得我实际掌握这些信息的唯一方法就是练习它。我的其他程序工作得很好,但就在我决定做一些壮观的事情时(当然对我来说;一个java专家会发现创建这个程序令人头脑麻木),有些事情非常糟糕。我真的很感激,如果你能看一下我的平均程序下面的代码,它可以平均你想要的任何数字,并告诉我世界上我做错了什么。

更新:Eclipse只输入一个数字后输出一个随机数,然后关闭程序。 Here is a snapshot where I type in the console to average 6 numbers and then start with the number 7, but for some reason, when I hit enter again, it outputs 8.

package justpracticing;
import java.util.*;

public class average{
    int grade = 0;
    int average;
    Scanner notoaverage = new Scanner(System.in);
    System.out.println("Please enter the amount of numbers you'd like the average of! ");
    final int totalaverage = notoaverage.nextInt();

    Scanner averagingno = new Scanner(System.in);
    System.out.println("Start typing in the " + totalaverage + " numbers");
    int numbers = averagingno.nextInt();
    int counter = 0;

    public void averagingnumbers(){
        while(counter<=totalaverage){
            grade+=numbers;
            ++counter;
        }

    }
    public void printStatement(){
        average = grade/totalaverage;
        System.out.println(average);
    }
}

1 个答案:

答案 0 :(得分:0)

您似乎已在另一个类中创建了一个average对象,并且正在调用主类提供的方法。

我不知道你究竟遇到了什么问题,但有一个问题在这里:

average = grade/totalaverage;

您要划分的这两个变量都是整数。这意味着结果也将是一个整数。这称为truncation。你想要做的是首先将至少一个整数转换为double:

... = (grade * 1.0) / totalaverage;

您还希望average变量为double而不是整数,以便它可以更准确。