我需要编写一个模拟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
所以这个程序只是“掷硬币”一次。我将如何使这个程序按预期工作?
答案 0 :(得分:2)
for
之后你有一个分号。这使得{}
中的语句不会成为循环的一部分。一般来说,即使语法正确,如果只在for
循环的最后一个块内有循环增量,那么代码将不那么混乱。
进行以下两项修改:
for (tosses = 0; tosses < 1000; tosses ++)
{
headsTails = (int) (Math.random() * 2) + 1;
if (headsTails == 1) {
heads ++;
} else {
tails ++;
}
}