gpt4 book ai didi

java - 根据其他值将值添加到数组

转载 作者:行者123 更新时间:2023-12-02 01:16:54 24 4
gpt4 key购买 nike

我目前正在开发一个程序,您可以掷骰子,然后根据结果您可以选择一些分数(x3、x4 等),并需要某种方法来检查每个值已掷了多少个骰子(有总共 5 个骰子)。所以基本上我需要像 1:0 时间、2:2 时间、3:1 时间这样的每个值。问题是我不想为每个值编写 20 行代码,所以我尝试使用数组,但结果似乎是随机的。下面是我的代码


int[] a = new int[6];


for(int i = 0; i<dice.size();i++){
if(dice.get(i).getValue() == 1){
a[0]++;
}
if(dice.get(i).getValue() == 2){
a[1]++;
}
if(dice.get(i).getValue() == 3){
a[2]++;
}
if(dice.get(i).getValue() == 4){
a[3]++;
}
if(dice.get(i).getValue() == 5){
a[4]++;
}
if(dice.get(i).getValue() == 6){
a[5]++;
}
}
for(int i : a ){
System.out.println(a[i]);
}

骰子值在这里设置:

for (int i = 0; i < 5; i++) {
random = (int) (Math.random() * 6) + 1;
dice.get(i).setValue(random);

例如,当我掷骰子并得到骰子:1,3,4,4,6时,程序打印:010110 就好像有一个 2、一个 4 和一个 5。

最佳答案

可以通过简单地从值中减去 1 来缩短第一个循环,以获取要递增的数组元素的索引(假设此处列表元素的类型为 Die):

for (Die d : dice) {
a[d.getValue()-1]++;
}

第二个循环是错误的,因为您使用数组元素的值从数组中检索元素。等效的非增强 for 循环如下:

for (int index = 0; index < a.length; index++) {
System.out.println(a[a[index]]);
}

第二次数组访问会产生与预期不同的结果。您需要重写循环才能获得预期结果:

for(int count : a) {
System.out.println(count);
}

关于java - 根据其他值将值添加到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57655769/

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