0

シミュレートされたコイントスが表か裏かをユーザーが予測する方法を作成しようとしています。乱数を 1 つまたは 2 つだけに割り当てるのに問題があります (頭と尾の場合)。私の試み(以下のコード)は私に0、1、2を与えていると思います。

public static void coinToss(String call){
        //setting up random
        Random random = new Random();

        //set user guess to numeric value
        int guessNo=0;


        if (call.equalsIgnoreCase("heads")){
            guessNo=1;
        }else if (call.equalsIgnoreCase("tails")){
            guessNo=2;
        }else System.out.println("Invalid. Enter either heads or tails");

        //setting result for coin toss 
        **int result = random.nextInt(2);**
        System.out.println("Trace: numberic result is:" + result);

        //if...else statement to print results of coin toss
        if (result==1){
            System.out.println("Result: heads");
        }else if (result==2){
            System.out.println("Result: Tails");
        }else System.out.println("Invalid result");

        if (guessNo==result){
            System.out.println("Guess Correct");
        }else System.out.println("Guess incorrect");

    }//method end

私は比較的Javaの初心者です(明らかに!)ので、助けてくれてありがとう!

4

3 に答える 3

1

int result = (random.nextInt(2))+1;試してみたいことがあります。

于 2013-11-10T20:10:53.840 に答える
1

文書化されているように、Random::nextInt0 (含む) と指定された上限 (含まない) の間の乱数を提供します。したがって、最初に範囲から乱数を取得してから、[0,2>それに 1 を追加する必要があります。

于 2013-11-10T20:11:33.750 に答える