使用数组限制输出

时间:2013-10-25 17:27:57

标签: java arrays

我的问题与计算数组中的整数有关。到目前为止,这是我的代码。

import java.util.Scanner; 

public class Frequency { 
  public static void main(String[]args) { 
    Scanner kbd = new Scanner(System.in); 
    System.out.print("enter numbers: ");
    int[] arr = new int[51]; 
    for(int i = 0; true; i++) { 
      int in = kbd.nextInt(); 
      if(in < 0)break; 
      else if(in > 50)break; 
      else arr[in]++; 
    } 
    for(int i = 0; i < arr.length; i++) { 
      System.out.println(i+" occurrences of "+arr[i]); 
    } 
  } 
}

问题输出的方式是正确的,除了我需要某种方法来过滤掉所有出现0的数字,这样输出中只显示输入中的数字;而不是0到50之间的每个数字。

2 个答案:

答案 0 :(得分:4)

您已经编写了if语句,以便在用户输入负数时停止第一个循环。只需为第二个循环写相同的东西:

for(int i = 0; i < arr.length; i++) { 
  if (arr[i] > 0) {
    System.out.println(arr[i]+" occurrences of "+i); 
  }
} 

旁注:我还换了arr[i]i

答案 1 :(得分:0)

 for(int i = 0; i < arr.length; i++) { 
        if(!(i==0 || i%10==0) && arr[i]!=0)
      System.out.println(i+" occurrences of "+arr[i]); 
    }