public class Generator {
public static void main(String[] args) {
String[] surnameList = {"Вишневский", "Сидоров", "Заперской", "Вафлистов", "Мичурин", "Иванов", "Алеексеев", "Петухов"};
String[] nameList = {"Александр", "Иван", "Алексей", "Максим", "Владимир", "Геннадий", "Петр", "Ярослав"};
String[] patronymicList = {"Анатольевич", "Александрович", "Владимирович", "Алексеевич", "Сергеевич", "Максимович", "Ярославович", "Иванович"};
// Вычисляем, сколько слов в каждом списке
int surnameLength = surnameList.length;
int nameLength = nameList.length;
int patronymicLength = patronymicList.length;
//Генерируем три случайных числа
int rand1 = (int) (Math.random() * surnameLength);
int rand2 = (int) (Math.random() * nameLength);
int rand3 = (int) (Math.random() * patronymicLength);
//Строим фразу
String phrase = surnameList[rand1] + " " + nameList[rand2] + " " + patronymicList[rand3];
//Выводим фразу
System.out.println("Ваш напарник это - " + phrase);
}
}
Не понимаю как отрабатывает Math.random()
и что он генерирует и умножает на surnameLength
например. В дебаге я не смог посмотреть что генерирует Math.random()
.
В книге по этому примеру написано:
Метод random()
возвращает случайно число между 0 и 1 поэтому мы должны умножить это число на количество элементов (длину массива) в нашем списке. Но если у нас метод random()
возвратит как написано 0
и 0 умножается на 8(длина каждого массива)
, то будет по итогу в этом случае всегда 0 индекс (8*0=0).
Работа Math.random()
:
Он случайным образом генерирует числа от 0 до 1, т.е. 0, 0.1, 0.2, 0.3 ... 0.9
.
Проблема у вас в том, что Math.random()
возвращает double
значение меньше 1, а при использовании (int) Math.random()
оно округляется в меньшую сторону, т.е. к 0.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Во время подготовки к экзамену OCA по Боярскому, встретил пример на стр178 Он касается модификатора доступа protected и звучит примерно так, что...
Вот здесь похожий вопросОтвет кроется в вашем методе main(){} как уже подметил @Grundy
В componentDidUpdate делаю второй поход за данными, что бы после добавления новой задачи( компонент AddTaskInput), изменения статуса или удаления (компонент...