From 81be1189b54dd55efdf5b8a273dc7acddba82fe3 Mon Sep 17 00:00:00 2001 From: aleksLegat Date: Tue, 12 May 2026 16:17:09 +0300 Subject: [PATCH 1/6] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82.=20=D0=93=D0=BE=D0=BD?= =?UTF-8?q?=D0=BA=D0=B8=2024.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Main.java | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index b18c6d23..72590510 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -2,10 +2,7 @@ import java.util.Scanner; public class Main { - // директиву final и константы мы еще в рамках курса не проходили - // но не могу не воспользоваться советом куратора ) - // вообще весь код можно было сделать гораздо проще, но хочется - // попробовать разные возможности языка + // Вынес что возможно в константы public static final int minSpeed = 0; public static final int maxSpeed = 250; public static final int racingTime = 24; @@ -13,13 +10,7 @@ public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); - // Создадим переменную для регистрации участников гонки - //Car[] listOfParticipants = new Car[3]; - - // Регистрация участников - // Можно сразу при регистрации участников определить победителя, - // как советует Artur, но тогда пропадает необходимость в классе Race - // который вроде как нужен по условиям задачи + // При регистрации участников сразу вычисдяем победителя гонок Car leader = null; int maxDistance = 0; From 0c8f92080358870be72f714fd6cea2cabca56e43 Mon Sep 17 00:00:00 2001 From: aleksLegat Date: Tue, 12 May 2026 16:25:23 +0300 Subject: [PATCH 2/6] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82.=20=D0=93=D0=BE=D0=BD?= =?UTF-8?q?=D0=BA=D0=B8=2024.=20=D0=9D=D0=BE=D0=B2=D1=8B=D0=B9=20=D0=B2?= =?UTF-8?q?=D0=B0=D1=80=D0=B8=D0=B0=D0=BD=D1=82.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Main.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 72590510..cb43d939 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,4 +1,3 @@ -import java.util.HashMap; import java.util.Scanner; public class Main { @@ -7,7 +6,6 @@ public class Main { public static final int maxSpeed = 250; public static final int racingTime = 24; - public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // При регистрации участников сразу вычисдяем победителя гонок @@ -16,7 +14,7 @@ public static void main(String[] args) { for (int i = 0; i < 3; i++) { int numberOfParticipant = i + 1; - System.out.println(String.format("Введите имя %d участника", numberOfParticipant)); + System.out.println("Введите имя " + numberOfParticipant + " участника"); String currentName = scanner.next(); int currentSpeed = inputSpeed(scanner, numberOfParticipant); @@ -41,10 +39,9 @@ public static void main(String[] args) { public static int inputSpeed(Scanner scanner, int numberOfParticipant) { int currentSpeed = -1; while (currentSpeed < minSpeed || currentSpeed > maxSpeed) { - System.out.println(String.format("Введите скорость автомобиля %d участника в диапазоне от %d до %d км/ч", numberOfParticipant, minSpeed, maxSpeed)); + System.out.println("Введите скорость автомобиля " + numberOfParticipant + " участника в диапазоне от " + minSpeed + " до " + maxSpeed + " км/ч"); currentSpeed = scanner.nextInt(); } return currentSpeed; } -} - +} \ No newline at end of file From 3bcbfbcac5e5d46ec4450cf1d9ed454c3f814718 Mon Sep 17 00:00:00 2001 From: aleksLegat Date: Tue, 12 May 2026 22:08:34 +0300 Subject: [PATCH 3/6] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82.=20=D0=93=D0=BE=D0=BD?= =?UTF-8?q?=D0=BA=D0=B8=2024.=20=D0=9D=D0=BE=D0=B2=D1=8B=D0=B9=20=D0=B2?= =?UTF-8?q?=D0=B0=D1=80=D0=B8=D0=B0=D0=BD=D1=82=202.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Main.java | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index cb43d939..e2522c8f 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -8,15 +8,22 @@ public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); - // При регистрации участников сразу вычисдяем победителя гонок + // При регистрации участников сразу вычисляем победителя гонок Car leader = null; int maxDistance = 0; + + for (int i = 0; i < 3; i++) { int numberOfParticipant = i + 1; + System.out.println("Введите имя " + numberOfParticipant + " участника"); - String currentName = scanner.next(); + String currentName = ""; + while ((currentName = scanner.nextLine()).trim().isEmpty()) { + System.out.println("Вы ввели некорректное имя участника!"); + } int currentSpeed = inputSpeed(scanner, numberOfParticipant); + scanner.nextLine(); Car currentCar = new Car(currentName, currentSpeed); int currentDistance = currentCar.getDistance(racingTime); @@ -33,15 +40,29 @@ public static void main(String[] args) { } System.out.println("В гонке победил автомобиль " + leader.name); + scanner.close(); } // Вынес код ввода скорости в отдельную функцию public static int inputSpeed(Scanner scanner, int numberOfParticipant) { int currentSpeed = -1; - while (currentSpeed < minSpeed || currentSpeed > maxSpeed) { - System.out.println("Введите скорость автомобиля " + numberOfParticipant + " участника в диапазоне от " + minSpeed + " до " + maxSpeed + " км/ч"); - currentSpeed = scanner.nextInt(); + System.out.println("Введите скорость автомобиля " + numberOfParticipant + " участника в диапазоне от " + minSpeed + " до " + maxSpeed + " км/ч"); + while (true) { + if (!scanner.hasNextInt()) { + System.out.println("Вы ввели что-то не то!"); + // что-то без этого уходит в бесконечный цикл, наверное нужно ввод как-то прочитать + scanner.nextLine(); + } else { + currentSpeed = scanner.nextInt(); + if (currentSpeed <= minSpeed || currentSpeed >= maxSpeed) { + System.out.println("Введите значение скорости в диапазоне от " + minSpeed + " до " + maxSpeed + " км/ч"); + scanner.nextLine(); + } else { + break; + } + } } + return currentSpeed; } } \ No newline at end of file From 8bbf3bcd427acd33a7d615d126d3939ecaa9764c Mon Sep 17 00:00:00 2001 From: aleksLegat Date: Tue, 12 May 2026 22:14:20 +0300 Subject: [PATCH 4/6] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82.=20=D0=93=D0=BE=D0=BD?= =?UTF-8?q?=D0=BA=D0=B8=2024.=20=D0=9D=D0=BE=D0=B2=D1=8B=D0=B9=20=D0=B2?= =?UTF-8?q?=D0=B0=D1=80=D0=B8=D0=B0=D0=BD=D1=82=202.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Main.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index e2522c8f..b61be4b2 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -38,7 +38,6 @@ public static void main(String[] args) { } } } - System.out.println("В гонке победил автомобиль " + leader.name); scanner.close(); } From a46bb5a57b1500dcbf21aca348b7168d0b63a496 Mon Sep 17 00:00:00 2001 From: aleksLegat Date: Wed, 13 May 2026 15:10:47 +0300 Subject: [PATCH 5/6] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82.=20=D0=93=D0=BE=D0=BD?= =?UTF-8?q?=D0=BA=D0=B8=2024.=20=D0=9D=D0=BE=D0=B2=D1=8B=D0=B9=20=D0=B2?= =?UTF-8?q?=D0=B0=D1=80=D0=B8=D0=B0=D0=BD=D1=82=202.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Main.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index b61be4b2..a05e5a5d 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -13,14 +13,13 @@ public static void main(String[] args) { int maxDistance = 0; - for (int i = 0; i < 3; i++) { int numberOfParticipant = i + 1; System.out.println("Введите имя " + numberOfParticipant + " участника"); - String currentName = ""; + String currentName; while ((currentName = scanner.nextLine()).trim().isEmpty()) { - System.out.println("Вы ввели некорректное имя участника!"); + System.out.println("Вы ввели некорректное имя участника!"); } int currentSpeed = inputSpeed(scanner, numberOfParticipant); scanner.nextLine(); From bc1f73bb7cff89434982b073191635a2fd4bc15b Mon Sep 17 00:00:00 2001 From: aleksLegat Date: Wed, 13 May 2026 15:20:33 +0300 Subject: [PATCH 6/6] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82.=20=D0=93=D0=BE=D0=BD?= =?UTF-8?q?=D0=BA=D0=B8=2024.=20=D0=9D=D0=BE=D0=B2=D1=8B=D0=B9=20=D0=B2?= =?UTF-8?q?=D0=B0=D1=80=D0=B8=D0=B0=D0=BD=D1=82=202.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Main.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a05e5a5d..61642db3 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -44,6 +44,7 @@ public static void main(String[] args) { // Вынес код ввода скорости в отдельную функцию public static int inputSpeed(Scanner scanner, int numberOfParticipant) { int currentSpeed = -1; + System.out.println("Введите скорость автомобиля " + numberOfParticipant + " участника в диапазоне от " + minSpeed + " до " + maxSpeed + " км/ч"); while (true) { if (!scanner.hasNextInt()) {