See More

import java.util.Scanner; public class Main { public static void main(String[] args) { // Читаем авто Auto[] arrayAuto = requestCar(); // Определяем самого быстрого Auto fastest = Race.fastest(arrayAuto); // Выводим System.out.println(String.format("Самая быстрая машина: %s(%d)", fastest.name, fastest.speed)); } static Auto[] requestCar() { Scanner scanner = new Scanner(System.in); Auto[] arrayAuto = new Auto[3]; for (int i = 0; i <= 2; i++) { String name = ""; int speed = 0; String question = "Введите имя авто:"; while (!Auto.nameVerf(name)) { System.out.println(question); name = scanner.next(); question = "Некорректное имя авто, повторите:"; } question = "Введите скорость авто (от 1 до 250, целое):"; while (!Auto.speedVerf(speed)) { System.out.println(question); if (scanner.hasNextInt()) { speed = scanner.nextInt(); question = "Число не в диапазоне(от 1 до 250), повторите:"; } else { question = scanner.next() + " - это не целое число, повторите:"; } } arrayAuto[i] = new Auto(name, speed); } return arrayAuto; } } class Race { static Auto fastest(Auto[] arrayAuto) { Auto fastest = arrayAuto[0]; int maxSpeed = 0; for (Auto auto : arrayAuto) { if (auto.speed > maxSpeed) { maxSpeed = auto.speed; // вместо скорости можно посчитать расстояние, но зачем? fastest = auto; } } return fastest; } } class Auto { String name; int speed; public Auto(String name, int speed) { this.name = name; this.speed = speed; } static boolean nameVerf(String name) { return !name.isEmpty(); // сюда можно будет добавить проверки для имени } static boolean speedVerf(int speed) { return 0 < speed & speed <= 250; } }