出生模拟器

Dar*_*nez 2 java random

我正在研究一个应该选择随机数的程序(一半被分配为男孩,其余的是女孩),并且应当在选择了至少一个男孩和一个女孩时停止,然后打印出总婴儿.看起来有点像这样:

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)

我知道我必须缺少一些实际开始随机序列的代码,但我不知道如何启动它.或者,另一方面,我应该使用布尔语句吗?

NPE*_*NPE 8

查看代码,我可以看到以下问题:

1)以下使用的当时的电流值计算总和boygirl(二者都为零).然后永远不会更新总和.

  int total = boy + girl;
Run Code Online (Sandbox Code Playgroud)

2)while条件在逻辑上是错误的并且在它周围缺少括号.我会告诉你如何解决这个问题.

3)在两个相互排斥的结果(男孩/女孩)之间进行单一选择,Math.random()只召唤一次而不是两次.否则你不能确保结果是相互排斥的(即你可以让同一个迭代的男孩和女孩,或男孩和女孩都没有).

4)if声明末尾有无关的分号.这是一个微妙的问题:代码在语法上是正确的,但没有达到你所期望的程度(无论Math.random()返回什么都会执行两个增量).

这些很容易修复.总的来说,你几乎就在那里.

  • @DarronMartinez:如果NPE的答案帮助您解决了问题,请考虑通过单击左侧的大复选标记将其标记为"正确"答案. (3认同)