gpt4 book ai didi

java - 有没有办法减少 if 语句?

转载 作者:行者123 更新时间:2023-12-03 23:16:08 25 4
gpt4 key购买 nike

这个程序应该打印出 1 到 10 范围内的 100 个随机数中每个数的生成次数(然后将其放入数组中)。

除了为每个数字设置一个 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();
}

最佳答案

你应该注意到你所有的 if 语句都有相似的结构:

if(arr[i] ==x){
add[x-1]++;
}

因此它们可以用add[arr[i]-1]++;代替。

您只需要一个 if 语句来验证您没有超出 add 数组的范围:

if (arr[i] <= 10 && arr[i] >= 1) {
add[arr[i]-1]++;
}

编辑:

正如 assylias 评论的那样,您实际上并不需要 if 语句,因为您将 arr 数组初始化为 1 到 10 之间的值。

关于java - 有没有办法减少 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33936705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com