2012-03-16 59 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); 

    }