Member 13306523 Ответов: 2

Как сделать так, чтобы мой код выбирал число от X до Y?


импорт java.util.Случайный;
импорт java. lang. Math;

публичный класс Exercise_7_8e {

публичный статический пустота главный(строка[] аргументы) {
// Todo автоматически сгенерированные заглушки метода

float[] Array1 = новый float[99];

float max = Array1[0];
float min = Array1[0];

for (int i = 0; i < Array1. length; i++) {
Array1[i] = (int) (Math. random () * 200 + 6);
if (Array1[i] > max) {
max = Array1[i];
} else if (Array1[i] < min)
min = Array1[i];

}

Системы.из.код println("наибольшее значение" + максимум);
Системы.из.код println("наименьшее значение" + мин);

}

}

Выход:

Самый большой валус - 205,0
наименьшее значение равно 0.0

Что я уже пробовал:

Так форматирование математике.случайный () - это, мол, математике.случайный()*макс + мин правильно? Однако в моем коде выходные данные всегда будут возвращать 0 как минимум. Как мне это исправить?

2 Ответов

Рейтинг:
1

0x01AA

float[] Array1 = new float[99];<br />
float min = Array1[0];

Вы назначаете min из неинициализированного массива. До сих пор я знаю, что Java действительно инициализируется по умолчанию до '0'. Мое личное мнение: всегда инициализируйте переменные явно и не полагайтесь на поведение компилятора/компоновщика.

Так Math.random() * 200 + 6 никогда не будет < min, что означает < 0 (от инициализации по умолчанию).

Попробуй-и подумай, что это значит:
float min = 9999999.9 или гораздо лучше max (float), если он действительно существует в Java (я думаю, что это Float. MAX_VALUE)

Надеюсь, это поможет.


Рейтинг:
1

Patrice T

Цитата:
Так форматирование математике.случайный () - это, мол, математике.случайный()*макс + мин правильно?

Простое чтение документации и анализ подскажут вам ответ.

0 <= Math.random() < 1
0 <= Math.random() * 200 < 200
6 <= Math.random() * 200 + 6 < 206
6 <= (int) (Math.random() * 200 + 6) < 206
6 <= (int) (Math.random() * 200 + 6) <= 205

Цитата:
Однако в моем коде выходные данные всегда будут возвращать 0 как минимум. Как мне это исправить?

Проблема в том, что вы инициализируете min с 0, который уже ниже любого случайного значения, которое вы получаете.

Обратите внимание, что вам не нужно хранить все случайные значения в массиве, потому что вы не используете их повторно.