Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions src/main/java/Car.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
public class Car {
public String nameCar; // Название автомобиля
public int speed; // Скорость автомобиля
Comment on lines +2 to +3

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Поля лучше пометить final, тем самым исключив возможность их модификации извне


// Конструктор
public Car(String name, int speed) {
this.nameCar = name;
this.speed = speed;
}
}
35 changes: 34 additions & 1 deletion src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,39 @@
import java.util.Scanner;


public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
Scanner scanner = new Scanner(System.in);
Race race = new Race(); // Экземпляр для отслеживания состояния гонки

// Вводим данные
for (int i = 1; i <= 3; i++) {
System.out.println("Введите название машины №" + i + ":");
String name = scanner.next();

int speed;
while (true) {
System.out.println("Введите скорость машины №" + i + ":");
if (scanner.hasNextInt()) { // Проверяем, что введено число
speed = scanner.nextInt();
if (speed >= 0 && speed <= 250) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Минимальную и максимальную скорости лучше вынести в константы с говорящим названием для повышения читабельности кода

break; // Выходим из цикла, если число в нужном диапазоне
} else {
System.out.println("Попробуйте ещё раз. Допустимая скорость: от 0 до 250.");
}
} else {
System.out.println("Попробуйте ещё раз. Нужно ввести целое число.");
scanner.next(); // Очищаем некорректный ввод
}
}

// Создаём автомобиль и проверяем его на лидерство
Car carUser = new Car(name, speed);
race.checkLeader(carUser);
}

// Выводим победителя
System.out.println("Самая быстрая машина: " + race.currentLeader);
scanner.close(); // Закрываем Scanner

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Молодец, что не забыл вызвать close() у объекта Scanner, заботиться об очистке ресурсов - очень важный навык

}
}
14 changes: 14 additions & 0 deletions src/main/java/Race.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
public class Race {
public String currentLeader = ""; // Текущий лидер
public int distanceLeader = 0; // Дистанция текущего лидера
Comment on lines +2 to +3

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Эти переменные лучше сделать приватными, чтобы у других классов не было возможности их изменения, а для получения названия машины-победителя лучше написать публичный геттер


// Метод для определения нового лидера
public void checkLeader(Car car) {
int distance = 24 * car.speed; // Пройденная дистанция за 24 часа

if (distance > distanceLeader) {
distanceLeader = distance; // Обновлённая дистанция лидера
currentLeader = car.nameCar; // Обновлённое название авто
}
}
}