Что программа делает это «прокатку кости» 99 раз (который пахнет «от одной» ошибки) и подсчитывайте, как часто каждый номер был найден. Массив freq
занимает в позиции i
, как часто i
был нарезанным кубиками.
Этот код генерирует следующее случайное число и затем увеличивает соответствующий интервал в массиве.
++freq[1 + Ran.nextInt(6)];
Становится яснее, если разбить его.
- Сначала оценивается
Ran.nextInt(6)
, которое дает случайное целое из множества {0, 1, 2, 3, 4, 5}. К этому добавляется 1, чтобы получить номер из набора {1, 2, 3, 4, 5, 6}. Давайте сохраним этот промежуточный результат в отдельной переменной для четкости: int result = Ran.nextInt(6) + 1
.
- Затем соответствующая частота просматривается в массиве и увеличивается на единицу.
++freq[result]
, что имеет такой же эффект, как к freq[result] += 1
.
Длина массива freq
была сделана равной 7, поэтому можно использовать «естественный» индекс. То есть элемент freq[0]
растрачивается. (Я сомневаюсь, что это очень хороший стиль.)
Другое слово по стилю: Общепринято практика резервирования имен капитала для типов, а не использовать их для переменных, так Ran
действительно должны быть названы ran
, чтобы избежать путаницы.
Еще одно дополнение: Разница между оператором после приращения как в i++
и оператор предварительно приращение, как в ++i
является то, что результат прежнего выражения является значение i
перед тем приращение а второе - значением после приращением. В вашем случае это не имеет значения, потому что вы все равно не используете результат. Чтобы увидеть, как это работает, попробуйте запустить следующий код:
int i = 10;
System.out.printf("i = %d%n", i);
System.out.printf("i++ = %d%n", i++);
System.out.printf("i = %d%n", i);
System.out.printf("++i = %d%n", ++i);
System.out.printf("i = %d%n", i);
Great , просто, что, если вместо '++ freq [1 + Ran.nextInt (6)] использовать' freq [1 + Ran.nextInt (6)] ++'', это влияет на механизм получения случайного числа между 1 ..6 или нет, они одинаковы? – jfun
@FarhangAmary Я обновил свой ответ с объяснением. – 5gon12eder
* «Я сомневаюсь, что это очень хороший стиль». * - +1 –