我正在研究一个应该选择随机数的程序(一半被分配为男孩,其余的是女孩),并且应当在选择了至少一个男孩和一个女孩时停止,然后打印出总婴儿.看起来有点像这样:
public class BoyAndGirl {
public static void main(String [] args) {
int boy = 0;
int girl = 0;
int total = boy + girl;
while (boy <= 1) && (girl <= 1){
if (Math.random() < 0.5);
boy = boy + 1;
if (Math.random() >= 0.5);
girl = girl + 1;
}
System.out.println("Congratulations! You have a total of " + total + " babies!");
}
}
Run Code Online (Sandbox Code Playgroud)
我知道我必须缺少一些实际开始随机序列的代码,但我不知道如何启动它.或者,另一方面,我应该使用布尔语句吗?
查看代码,我可以看到以下问题:
1)以下使用的当时的电流值计算总和boy和girl(二者都为零).然后永远不会更新总和.
int total = boy + girl;
Run Code Online (Sandbox Code Playgroud)
2)while条件在逻辑上是错误的并且在它周围缺少括号.我会告诉你如何解决这个问题.
3)在两个相互排斥的结果(男孩/女孩)之间进行单一选择,Math.random()只召唤一次而不是两次.否则你不能确保结果是相互排斥的(即你可以让同一个迭代的男孩和女孩,或男孩和女孩都没有).
4)if声明末尾有无关的分号.这是一个微妙的问题:代码在语法上是正确的,但没有达到你所期望的程度(无论Math.random()返回什么都会执行两个增量).
这些很容易修复.总的来说,你几乎就在那里.