2012-03-16 187 views
1

這是一個簡單的程序,它需要計算總銷售額並確定有多少人已經在範圍內賺取工資(200到299,300到399等等) 我有存儲在數組中的值(計數器) 如何使用增強的for循環打印我的數組(不計控制,只有增強)如何使用增強for循環打印數組

這是我的計劃

public class Sales 
{ 

    public static void main(String args[]) 
    { 
     //declare 
     double salesData[] = {750, 1200, 5000, 7575, 10000, 9250, 12500, 3560, 4800}; 
     double gross = 0;//[] = new double[9]; 
     int counter[]= new int[9]; 
     int i=0; 


     //walk through sales data 
     for(i=0; i<salesData.length;i++) 
     { 
      //calculate gross 
      gross = 200 + salesData[i] * .09; 

      //determine range and increment count array 
      if((gross >200) && (gross <= 299)) 
       counter[0] ++; 

      else if((gross >300) && (gross <= 399)) 
       counter[1] ++; 

      else if((gross >400) && (gross <= 499)) 
       counter[2] ++; 

      else if((gross >500) && (gross <= 599)) 
       counter[3] ++; 

      else if((gross >600) && (gross <= 699)) 
       counter[4] ++; 

      else if((gross >700) && (gross <= 799)) 
       counter[5] ++; 

      else if((gross >800) && (gross <= 899)) 
       counter[6] ++; 

      else if((gross >900) && (gross <= 999)) 
       counter[7] ++; 

      else if (gross >1000) 
       counter[8]++; 
      //print gross 
      System.out.println(gross); 

     } 
+0

請注意,您可以大大通過計算來更新位置簡化這個循環的實際複雜的部分,而不是使用一系列'if's:'int indexToUpdate =(int)((gross-200)/ 100);'此外,你現在跳過任何在百個確切點上的東西年。那是故意的嗎? – dlev 2012-03-16 23:01:22

+0

銷售數組沒有任何東西登陸1000,所以我跳過它。如何打印計數器(當前存儲範圍的數組)? – ruth542 2012-03-19 04:04:24

回答

1

你用同樣的方法它在任何其他集合:

for(double d : salesData) { 
    ... 
} 
2
double salesData[] = {750, 1200, 5000, 7575, 10000, 9250, 12500, 3560, 4800}; 

for(double data : salesData){ 
gross = 200 + data * .09; 
//your logic 
} 
+0

但我需要用for循環打印計數器陣列 – ruth542 2012-03-19 04:00:46

1

增強型for循環:

for(double b : salesData) System.out.println(b); 

Arrays.toString(double[] array)

System.out.println(Arrays.toString(salesData)); 
+0

ohh謝謝!我用(雙b:salesData)System.out.println(b); – ruth542 2012-03-19 04:07:32

0
double[] salesData = {750, 1200, 5000, 7575, 10000, 9250, 12500, 3560, 4800}; 
    int[] counter = new int[9]; 

    //walk through sales data 
    for (double salesDatum : salesData) 
    { 
     //calculate gross 
     double gross = 200 + salesDatum * .09; 
     int group = Math.min(8, (int)gross/100 - 200); 

     counter[group]++; 
     //print gross 
     System.out.println(gross); 

    }