2014-11-26 6 views
0

하드 코드 된 값을 사용하여 내 주 메서드에서 2 배열을 만들고이를 generateReport 메서드로 전달하고 인쇄하려고합니다. 테이블 밖으로.메서드에 2 배열을 전달하고 2 배열의 값을 사용하여 테이블을 인쇄하려고합니다.

내가 함께 일하고 있어요 문제는 내 코드와

입니다 내 주요 오류 및 컴퓨터 당신에 기본이되는 통화를 표시하도록되어 주석 코드의 섹션을 얻고 아래 노력하고있어.

public class sheet13t5 
{ 
    public static void main(String[] args) 
    { 
     int[] units = new int[] {10, 1, 6, 2, 7}; 
     double[] prices = new double[] {25.99, 30.49, 12.00, 15.55, 9.55}; 
     generateReport(units[], prices[]); 
    } 

    public static void generateReport(int units[], double prices[]) 
    { 
     System.out.println("Event #\tTicket Price\tTickets Sold\tTotal Sales Value\tHistogram (+ for each ticket sold)"); 
     NumberFormatter format = NumberFormat.getCurrencyInstance(); 
     for (int i = 0; i < units.length; i++) 
     { 
      System.out.print(i++ + "\t"); 
      System.out.printf("%7d\t", ++i); 
      System.out.print(prices[i] + "\t" + units[i]); 
      //System.out.printf(format. 
      System.out.print(prices[i] * units[i]); 
      for (int j = 0; j < units.length; j++) 
       System.out.print("+"); 

      System.out.println(); 
     } 
    } 
} 

답변

2

귀하의 메서드 호출 IndexOutOfBoundException을 제공 보장 루프 내에서 i++++i를 사용

generateReport(units,prices); 

대신

generateReport(units[], prices[]); 
1

해야한다. 이러한 증분 대신 i+1을 사용하십시오. 각 티켓 ​​사용 for (int j = 0; j < units[i]; j++) System.out.print("+");+를 인쇄하는 대신 for (int j = 0; j < units.length; j++) System.out.print("+");

하려면