1

我试图在这里使用 != 0; 排除这个嵌套 for 循环中的零。但它什么也没做。我试图在滚动时获得 2 个六面骰子的每个出局的概率。我必须弄清楚它们首先滚动的次数,但是骰子里面没有零,所以我必须排除它。我不明白为什么这不起作用。

for( die2 = 0; die2 <= 6 && die2 != 0; die2++)
            for( die1 = 0; die1 <= 6 && die1 != 0; die1++)
                System.out.println("Die 2: " + (die2 * userInputValue) + " " + "Die 1: " +       (die1 * userInputValue));
4

2 回答 2

2

1只是从而不是开始循环0

for(int die2 = 1; die2 <= 6 ; die2++)
            for(int die1 = 1; die1 <= 6 ; die1++)
                System.out.println("Die 2: " + (die2 * userInputValue) + " " + "Die 1: " +       (die1 * userInputValue));
于 2012-10-15T03:32:32.473 回答
2

您应该从 1 开始循环,而不是从 0 开始。

让我们看看您当前的代码:

for (die2 = 0; die2 <= 6 && die2 != 0; die2++)
    for (die1 = 0; die1 <= 6 && die1 != 0; die1++)
        // Do something

你为什么不点击做某事?这段代码相当于(*)

die2 = 0;
while (die2 <= 6 && die2 != 0) {
    die1 = 0;
    while (die1 <= 6 && die1 != 0) {
        // Do something
        die1++;
    }
    die2++;
}

请注意,第一个条件检查是否die2为 0,但在进入循环die2始终为 0,因为这是您设置的。相反,您应该使用

for (die2 = 1; die2 <= 6; die2++)
    for (die1 = 1; die1 <= 6; die1++)
        // Do something

这将跳过 0 因为你从来没有设置die2die1首先设置为 0。


(*) while 循环的这种重写并不完全等同于 for 循环,因为这种重写不会保留continue语句的语义,但是您的代码没有使用 continue,所以在这种情况下它等同于原始.

于 2012-10-15T03:32:35.953 回答