在下面的示例中,while 循环模拟了查看 10 个使用过的引擎的机械师。每个引擎有 50% 的机会工作或不工作。我的变量计数器跟踪工作引擎的数量并在程序结束时将其打印出来。
我的问题是这是使用 rgen.nextBoolean() 的正确和最佳方法吗?将 rgen.nextBoolean 放入方法中然后从 while 循环内部调用该方法会更好吗?另外,我有点困惑 if(rgen.nextBoolean()) 如果你没有在 if 条件下明确告诉 rgen.nextBoolean() 你给它 n 作为一个值,它是如何知道它正在评估 n 的?
import acm.program.*;
import acm.util.*;
public class WorkingEngines extends ConsoleProgram{
public void run(){
int n = 0;
int counter = 0;
while (n < 10) {
if (rgen.nextBoolean()){
counter++;
}
n++;
}
println("out of ten random engines you have" + counter + " working properly");
}
private RandomGenerator rgen = RandomGenerator.getInstance();
}