2016-10-24 4 views
-3

メインで配列を印刷しようとすると... NULLと0.0が得られます。 誰も私にこれが起こっているかもしれない理由についていくつかのアドバイスを与えることができますか?私の配列を印刷するときにJava nullと0.0が返される

Nullsと0.0をすべて取得していたので、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 
+4

[mcve]が役に立ちます。 – khelwood

+2

@khelwoodに同意します。与えられたコードは完全で検証可能だが、最小限に抑えられているようだ。 –

答えて

0

あなたはdataCalculation()から何かを返されていないので、メソッドの呼び出しが行われたときに計算が失われます。 dealerNamesと同じように、dealerSalescommissionRateは、引数としてdisplayTotals()に渡されますが、少なくとも最初の2つ以上ではなく、最初にdataCalculation()に渡す必要があります。あなたは最後のものを得るためにcommission()に電話するべきです、方法はこれまで呼ばれていないようです。

関連する問題