该程序应打印出每个数字生成100个随机数的次数,范围为1到10(然后将其放入数组中).
我想不出任何其他方式,而不是每个数字都有一个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();
}
Run Code Online (Sandbox Code Playgroud)
您应该注意,所有if语句都具有类似的结构:
if(arr[i] ==x){
add[x-1]++;
}
Run Code Online (Sandbox Code Playgroud)
因此它们可以被替换add[arr[i]-1]++;.
您只需要一个if语句来验证您是否没有超出add数组的范围:
if (arr[i] <= 10 && arr[i] >= 1) {
add[arr[i]-1]++;
}
Run Code Online (Sandbox Code Playgroud)
编辑:
正如assylias所评论的那样,您并不真正需要if语句,因为您将arr数组初始化为1到10之间的值.
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |