Conversation
| String name; | ||
| int speed; |
There was a problem hiding this comment.
Поля лучше пометить final, тем самым исключив возможность их модификации извне
| System.out.println("Введите название машины №" + i + ":"); | ||
| name = scanner.nextLine(); | ||
| if (name.trim().isEmpty()) { | ||
| System.out.println("Название не может быть пустым!"); | ||
| } |
There was a problem hiding this comment.
Код для считывания непустой строки с ввода лучше вынести в отдельную функцию - код, разделённый на небольшие функции, легче читать, поддерживать и переиспользовать
| speed = scanner.nextInt(); | ||
| scanner.nextLine(); | ||
|
|
||
| if (speed > 0 && speed <= 250) { |
There was a problem hiding this comment.
Минимальную и максимальную скорости лучше вынести в константы для повышения читабельности кода
| String leaderName = ""; | ||
| int leaderDistance = 0; | ||
|
|
There was a problem hiding this comment.
Обе переменные лучше сделать приватными, т.к. они относятся к внутренней логике работы класса, а для получения машины-победителя у тебя уже есть функция getWinner()
| scanner.nextLine(); } | ||
| } | ||
|
|
||
| Car car = new Car(name.trim(), speed); |
There was a problem hiding this comment.
trim() лучше сразу сделать при чтении строки, что по идее уже выполняется, но делается только для проверки в конструкции if - можно вызов trim() сделать один раз вместо двух в данном случае
если при вводе имени машины или скорости сделать перенос строки (enter), то сообщение ошибки будет выведено столько же раз, сколько была перенесена строка, не нашёл красивого решения :(