0

乱数ジェネレーターがスネークアイを「ロール」するのに何回かかるかを確認するシミュレーターを作成しています。プログラムは繰り返すだけ

Not snake eyes yet :(

コードは次のとおりです。

import java.util.Random;

public class SnakeEyes {

public static void main(String[] args) {
    Random myRandom = new Random();
    int die1 = 0, tries = 0, die2 = 0;

    System.out.println("Welcome to SEO (Snake Eyes Operator)!");
    System.out.println("How many rolls will it take you to get to snake eyes! ");

    die1 = myRandom.nextInt(6) + 1;
    die2 = myRandom.nextInt(6) + 1;

    while (die1 + die2 != 2) {
        System.out.println("Not snake eyes yet :( ");
        tries = +1;

    }

    System.out.print("You have rolled snake eyes! ");
    System.out.print("Congratulations!  It only took you ");
    System.out.print(tries);
    System.out.print("!");

}

}

開ループの問題だと思いますが、よくわかりません。ありがとう!

4

4 に答える 4

5

while ループを使用する場合は、チェックする値を更新する必要があります。更新しないとループが停止しません。

ループ内die1で値を更新する必要があります。die2

于 2013-09-12T05:32:48.347 に答える
2

このwhile (die1 + die2 != 2)条件が失敗すると、無限ループに移行し、ループを中断する条件が必要になります。これを試してください(10回の反復後にループが壊れます):

while (die1 + die2 != 2) {      
    System.out.println("Not snake eyes yet :( ");
    die1 = myRandom.nextInt(6) + 1;
    die2 = myRandom.nextInt(6) + 1;
    tries += 1;
    if(tries==10)
        break;
}

tries = +1;と置き換えますtries += 1;

于 2013-09-12T05:33:43.347 に答える
0

myRandom.nextInt(6) + 1; ループ内で割り当てる必要がありwhileます。そうしないと、同じ値を何度もチェックして反復します。

于 2013-09-12T05:33:38.617 に答える