当我打印我的数组时,java null和0.0' s

时间:2016-10-24 18:40:42

标签: java arrays null

当我尝试在主要数据中打印我的数组时...我得到NULL和0.0。 任何人都可以给我一些建议,为什么会发生这种情况?

由于我获得了所有Nulls和0.0' s,我将for循环拉入我的dataCalculations方法,并且它完美地打印了名称和销售额。

我对.length功能的使用是否不正确?

非常感谢任何建议/帮助。

谢谢,

/*
 * Anthony Vincenzo Laginess
 * CIT 130 HMW 08 Arrays
 * 10/19/16
 * Time Spent: 
 */
package cit130mhmw08_laginess;

import java.util.Scanner;

public class CIT130MHMW08_Laginess 
{

public static void main(String[] args) 
{
    Scanner input = new Scanner(System.in);

    System.out.println("------------------------------------------");
    System.out.println("Please enter the total number of dealers: ");
    System.out.println("------------------------------------------");
    int numDealers = input.nextInt();
    numDealers = numberOfDealers(numDealers);
    String[] dealerNames = new String[numDealers];
    double[] dealerSales = new double[numDealers];
    double[] commissionRate = new double[dealerSales.length];
    double[] dealershipSalesTotal = new double[dealerSales.length];
    double[] dealerSalesAvgTotal = new double[dealerSales.length];
    double[] totalCommission = new double[commissionRate.length];


    System.out.println("--------------------------------------------------------");
    System.out.printf("Please enter the required data for each of your dealers: %n");
    System.out.println("--------------------------------------------------------");
    dataCalculation(numDealers);

    System.out.println("----------------");
    System.out.println("Dealer Totals: ");
    System.out.println("----------------");
    displayTotals(numDealers, dealerNames, dealerSales, commissionRate);

}//main

//METHOD 1
public static int numberOfDealers(int dealers)
{
    int results;

    Scanner input = new Scanner(System.in);

    while(dealers < 0 || dealers > 30)
    {
        System.out.printf("%nEnter a valid number of dealers: %n");
        dealers = input.nextInt();  
    }
    results = dealers;
    return results;
}//number of dealers methods

//METHOD 2
public static void dataCalculation(int data)
{
    String[] dealerNames = new String[data];

    Scanner input = new Scanner(System.in);

    System.out.printf("%nEnter the names of the dealers:%n ");

        for(int i = 0; i < data; i++)
        {
            String names =input.nextLine();
            dealerNames[i]= names;
        }

    double[] dealerSales = new double[data];
    System.out.printf("%nEnter their sales totals: %n");

        for(int i = 0; i < data; i++)
        {
            double sales = input.nextDouble();
            dealerSales[i] = sales;
        }
}//data calculations

//METHOD 3
public static double[] commission(double[] dealerSales)
{
    //Create array
    double[] commissionRate = new double[dealerSales.length]; 

    for(int i = 0; i < dealerSales.length; i++)
    {
            commissionRate[i] = dealerSales[i];

        if(commissionRate[i] > 0 && commissionRate[i] < 5000)
           commissionRate[i] = commissionRate[i] * 0.08; 
        else if(commissionRate[i] > 5000 && commissionRate[i] < 15000)
            commissionRate[i] = commissionRate[i] * 0.15;
        else if(commissionRate[i] > 15000)
            commissionRate[i] =  commissionRate[i] * 0.20;
    }
    return commissionRate;
}//commission method 

public static double[] dealershipSales(double[] dealerSales)
{
    //Create array
    double[] dealershipSalesTotal = new double[dealerSales.length]; 

    for(int i = 0; i < dealerSales.length; i++)
    {
        dealershipSalesTotal[i] += dealerSales[i];        
    }
    return dealershipSalesTotal;
}//dealership sales

public static double[] dealerSalesAvg(double[] dealerSales)
{
    double[] dealerSalesAvgTotal = new double[dealerSales.length];

    for(int i = 0; i < dealerSales.length; i++)
    {
        dealerSalesAvgTotal[i] += dealerSales[i] / dealerSales.length;
    }
    return dealerSalesAvgTotal;
}//dealership sales averages

public static double[] dealershipTotalCommission(double[] commissionRate)
{
    double[] totalCommission = new double[commissionRate.length];

    for(int i = 0; i < commissionRate.length; i++)
    {
            totalCommission[i] += commissionRate[i];
    }
    return totalCommission;
}//total commission for the dealership

public static void displayTotals(int numDealers, String[] dealerNames, double[] dealerSales, double[] commissionRate)
{

    for(int i = 0; i < numDealers; i++)
    {
        System.out.println(" " + dealerNames[i]);
        System.out.println(" " + dealerSales[i]);
        System.out.println(" " + commissionRate[i]);
    }
}//display totals  
}//class

1 个答案:

答案 0 :(得分:0)

您没有从dataCalculation()返回任何内容,因此在方法调用完成后计算将丢失。就像dealerNamesdealerSalescommissionRate作为参数传递给displayTotals()一样,它们应该首先传递给dataCalculation()而不是再次声明,至少前两个。你应该调用commission()来获取最后一个,这个方法似乎永远不会被调用。