这个程序应该打印出每个数字已经产生了100个随机数的规模从1到10(然后把它放在数组中)的次数。有没有办法减少if语句?
我想不出任何其他方式比每个数字都有if语句。 有什么办法可以避免这么多if语句被另一个代码或其他东西?
public static void countNumbers() {
Random generator = new Random();
int arr[] = new int[101];
int add[] = new int[10];
for (int i = 0; i < 100; i++) {
int sum = 0;
arr[i] = generator.nextInt(10)+1;
if(arr[i] ==1){
add[0]++;
}
if(arr[i] ==2){
add[1]++;
}
if(arr[i] ==3){
add[2]++;
}
if(arr[i] ==4){
add[3]++;
}
if(arr[i] ==5){
add[4]++;
}
if(arr[i] ==6){
add[5]++;
}
if(arr[i] ==7){
add[6]++;
}
if(arr[i] ==8){
add[7]++;
}
if(arr[i] ==9){
add[8]++;
}
if(arr[i] ==10){
add[9]++;
}
}
System.out.println(Arrays.toString(add));
System.out.println();
}
这有一个模式。你可以使用它。一般来说,你可以使用'switch'语句,它们没有模式。 –
将所有if语句替换为'add [i <= 0? 0:i - 1] ++;' – nbokmans