See More

import java.util.Scanner; public class Main { private static final Scanner scanner = new Scanner(System.in); private static final int CAR_COUNT = 3; private static final double MIN_SPEED = 0; private static final double MAX_SPEED = 250; public static void main(String[] args) { System.out.println("Добро пожаловать на гонку! Введите данные о 3 автомобилях."); Race race = new Race(); for (int i = 1; i <= CAR_COUNT; i++) { System.out.println("\nВведите данные для автомобиля №" + i + ":"); Car car = createCar(); race.addCar(car); } race.determineLeader(); Car leader = race.getLeader(); if (leader != null) { System.out.println("\nСамая быстрая машина: " + leader.getName()); } else { System.out.println("\nНе удалось определить лидера гонки."); } scanner.close(); } private static Car createCar() { String name = getCarName(); double speed = getValidSpeed(); return new Car(name, speed); } private static String getCarName() { System.out.print("Название автомобиля: "); return scanner.nextLine(); } private static double getValidSpeed() { double speed; while (true) { System.out.print("Скорость автомобиля (км/ч): "); try { speed = Double.parseDouble(scanner.nextLine()); if (speed > MIN_SPEED && speed <= MAX_SPEED) { break; } else { System.out.println("Ошибка: скорость должна быть больше 0 и не превышать 250 км/ч. Попробуйте ещё раз."); } } catch (NumberFormatException e) { System.out.println("Ошибка: введите корректное числовое значение скорости."); } } return speed; } }