2

新しいボストンのチュートリアルを使用して練習していますが、完全に理解していないプログラムが1つあります。このプログラムは、各サイコロの目で発生する数字の頻度を数え、その結果を配列に保存するように設計されています。私が問題を抱えている行は++freq[1 + newDice.nextInt(6)]です。私は[1+newDice.nextInt(6)]を理解しています; ただし、配列は、数値が発生するたびに各インデックスを1ずつインクリメントすることをどのように認識しますか?

Random newDice = new Random ();

        int freq[] = new int [7];

        for(int i = 1; i<= 1000; i++)
        {
            ++freq[1+newDice.nextInt(6)];
        }

        System.out.println("Dice Number\tFrequency");
        for(int i = 1; i< freq.length; i++)
        {
            System.out.println(i+"\t\t"+freq[i]);

        }
4

1 に答える 1

4

配列内のその位置に格納されている値をインクリメントしています。配列インデックスをインクリメントしていません。

これは次と同等です。

int index = 1+newDice.nextInt(6);
int f = freq[index];
++f;
freq[index] = f;
于 2013-03-04T14:26:35.037 に答える