gpt4 book ai didi

java - 解释一下这段代码是做什么的

转载 作者:行者123 更新时间:2023-12-01 07:25:53 24 4
gpt4 key购买 nike

我是java新手。我正在阅读一些教程并遇到了这段代码,但我无法理解该代码。请解释一下这是什么意思。

class Randoms
{
public static void main(String[] args)
{
Random rand = new Random();
int freq[] = new int[7];
for(int roll = 1; roll < 10; roll++)
{
(++freq[1 + rand.nextInt(6)]);
}
...

最佳答案

逐行:

Random rand = new Random();创建 Random 对象的新实例,这负责创建随机数。

int[] freq = new int[7];创建一个新的 int 数组,它可以存储 7 个元素,索引为 0...6。值得注意的是Java中,数组中存储的整数被初始化为 0 。 (并非所有语言都如此,例如 C ,如 C 中的 int 数组最初存储内存垃圾数据,并且必须显式初始化为零)。

for(int roll = 1; roll < 10; roll++)这滚动了 9 次(因为 1...9,但最好从 0 开始)

(++freq[1 + rand.nextInt(6)]);这条线是你不应该以这种方式做的事情,因为正如你所看到的,它是一个怪物。

做这样的事情:

    for(int roll = 0; roll < 9; roll++)
{
int randomNumber = rand.nextInt(6); //number between 0...5
int index = 1 + randomNumber; //number between 1...6
freq[index]++; //increment the number specified by the index by 1
//nearly equivalent to freq[index] += 1;
}

所以基本上它会随机化 9 个骰子的 throw 次数,并将骰子 throw 计数(或者它称之为频率)存储在数组中。

因此,它模拟 9 次掷骰子(数字从 1...6),每次“掷”特定数字时,都会增加数组中该特定位置存储的数字。

所以最后,如果你说:

    for(int i = 1; i <= 6; i++)
{
System.out.println("Thrown " + freq[i] + " times of number " + i);
}

然后就可以清楚地看到发生了什么。

关于java - 解释一下这段代码是做什么的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24885391/

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