gpt4 book ai didi

java - 在循环的限定比较中使用随机参数时,它是调用一次随机化函数还是每次循环运行时调用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:17:28 25 4
gpt4 key购买 nike

根据问题,假设您有以下代码:

    Random rand = new Random();
for (int k = 0; k < rand.nextInt(10); k++) {
//Do stuff here
}

k 是否仅在循环开始运行时与 rand.nextInt(10) 进行一次比较,以便循环在每个间隔运行的机会均等在 0 和 9 之间?或者它是否会在循环的每次迭代中进行比较,从而更有可能出现较低的数字?

此外,这是否因语言而异?我的示例是针对 Java 的,但是大多数语言之间是否存在一个标准?

最佳答案

Does k get compared to rand.nextInt(10) only once, when the loop starts running?

不,每次检查循环继续条件时,k 都会与 rand 生成的下一个随机数进行比较。

如果你想生成一次随机数,定义一个变量,并在循环之前将其设置为nextInt(10)。您还可以使用倒数的替代方法:

for (int k = rand.nextInt(10); k >= 0 ; k--) {
//Do stuff here
}

在至少四种使用这种 for 循环语法的其他语言中也是如此 - C++、C、C# 和 Objective C。

关于java - 在循环的限定比较中使用随机参数时,它是调用一次随机化函数还是每次循环运行时调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25124499/

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