Repository navigation
Expand file tree
/
Copy pathMain.java
More file actions
56 lines (51 loc) · 3.67 KB
/
Copy pathMain.java
File metadata and controls
56 lines (51 loc) · 3.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String name; // название машины
int speed; // скорость машины
int countAuto = 3; // количество автомобилей, учавствующих в гонке
Race race = new Race(); // создадим экземпляр класса Race (гонка)
Scanner scanner = new Scanner(System.in); // Создаём экземпляр класса Scanner.
// в цикле запрашиваем у пользователя параметры машин
for (int i = 1; i <= countAuto; i++){
// запрашивем название очередной машины в бесконечном цикле
while(true){
System.out.println("- Введите название машины № " + i);
name = scanner.nextLine();
// если ввели пустое название, пропускаем эту итерацию для новой попытки
if (name.isEmpty()){
System.out.println("Название машины не может быть пустым.");
continue;
}
break; // выход из цикла, если ввели корректное название машины
}
// После использования nextInt() в потоке ввода остаётся символ новой строки (\n).
// Когда вызывается nextLine(), этот символ воспринимается как пустая строка.
// Чтобы избежать проблемы, нужно вызвать nextLine() для очистки буфера перед чтением.
// запрашивем скорость очередной машины в бесконечном цикле
while(true){
// если ввели нечисловое значение, пропускаем эту итерацию для новой попытки
System.out.println("- Введите скорость машины № " + i);
if (scanner.hasNextInt()) { // определим тип считываемых данных
speed = scanner.nextInt();
scanner.nextLine(); // очистим буфер
} else {
System.out.println("Вы ввели не целое число.");
scanner.nextLine(); // очистим буфер
continue;
}
// если ввели некорректное значение, пропускаем эту итерацию для новой попытки
if (speed <= 0 || speed > 250 ){
System.out.println("Неправильная скорость.");
continue;
}
break; // выход из цикла, если ввели корректную скорость машины
}
Auto auto = new Auto(name,speed); // создадим экземпляр класса Auto с параметрами
race.drive(auto); // добавим очередной автомобиль в гонку
}
// выводим сообщение о самой быстрой машине
System.out.println("Самая быстрая машина: " + race.leaderName);
scanner.close(); // Закрываем Scanner по завершении работы.
}
}