如何使用“for”循环编写抛硬币程序?

时间:2015-08-02 04:24:10

标签: java for-loop

我需要编写一个模拟1000次硬币投掷的程序,然后打印出结果数量的头部和尾部。我的主要问题是“for”循环。这就是我到目前为止所做的:

public static void main(String[] args) {
    int tosses;
    int headsTails = 0;
    int tails = 0;
    int heads = 0;

    for (tosses = 0; tosses < 1000; tosses ++, headsTails = (int) (Math.random() * 2) + 1);
    {
        if (headsTails == 1) {
            heads ++;
        } else {
            tails ++;
        }
    }

    System.out.println("You flip a coin 1000 times.\nNumber of heads:" + heads + "\nNumber of tails:" + tails);

}

当我运行时,我得到:

You flip a coin 1000 times.
Number of heads:0
Number of tails:1

或:

You flip a coin 1000 times.
Number of heads:1
Number of tails:0

所以这个程序只是“掷硬币”一次。我将如何使这个程序按预期工作?

1 个答案:

答案 0 :(得分:2)

for之后你有一个分号。这使得{}中的语句不会成为循环的一部分。一般来说,即使语法正确,如果只在for循环的最后一个块内有循环增量,那么代码将不那么混乱。

进行以下两项修改:

for (tosses = 0; tosses < 1000; tosses ++)
{
    headsTails = (int) (Math.random() * 2) + 1;
    if (headsTails == 1) {
        heads ++;
    } else {
        tails ++;
    }
}