Skip to content

Conversation

@VankaGam
Copy link
Owner

Разбираюсь, но вроде получилось

System.out.println("Введите скорость машины " + nameCar+" :");
int speedCar = scanner.nextInt();
Car car = new Car(nameCar, speedCar);
if(car.speed>0&&car.speed<251){

Choose a reason for hiding this comment

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

Лучше вынести в константы минимальную и максимальную скорость

Comment on lines 39 to 50
while(true){
System.out.println("Введите скорость машины "+ nameCar3);
int speedCar3 = scanner.nextInt();
Car car3 = new Car(nameCar3, speedCar3);
if(car3.speed>0&&car3.speed<251){
cars.add(car3);
System.out.println(car3.name + " подходит! Она проедет "+ leMan(car3.speed) +" км за 24 часа.");
break;
}else{
System.out.println("Машина не подходит на гонку допускаются машины со скоростью до 250 км/ч. Попробуйте еще раз, так как скорость "+ car3.name +" = "+ car3.speed +" км/ч.");
}
}

Choose a reason for hiding this comment

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

Этот кусок кода повторяется три раза, его можно вынести в отдельную функцию

Comment on lines 73 to 74
String name;
int speed;

Choose a reason for hiding this comment

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

Эти переменные лучше пометить final

Comment on lines +51 to +65
if(cars.get(0).speed>cars.get(1).speed&&cars.get(0).speed>cars.get(2).speed){
System.out.println("Самая быстрая машина: " + cars.get(0).name);
}else if(cars.get(1).speed>cars.get(0).speed&&cars.get(1).speed>cars.get(2).speed){
System.out.println("Самая быстрая машина: " + cars.get(1).name);
}else if(cars.get(2).speed>cars.get(0).speed&&cars.get(2).speed>cars.get(1).speed){
System.out.println("Самая быстрая машина: " + cars.get(2).name);
}else if(cars.get(0).speed==cars.get(1).speed&&cars.get(0).speed>cars.get(2).speed){
System.out.println("Самые быстрые машины: " + cars.get(0).name+", "+cars.get(1).name);
}else if(cars.get(1).speed==cars.get(2).speed&&cars.get(1).speed>cars.get(0).speed) {
System.out.println("Самые быстрые машины: " + cars.get(1).name + ", " + cars.get(2).name);
}else if(cars.get(0).speed==cars.get(2).speed&&cars.get(1).speed>cars.get(1).speed) {
System.out.println("Самые быстрые машины: " + cars.get(0).name + ", " + cars.get(2).name);
} else{
System.out.println("Все машины финишируют одинаково");
}

Choose a reason for hiding this comment

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

Это бы тоже вынести в отдельную функцию и можно написать проще, т.к. такой многоэтажный if очень тяжело читать и понимать. В списке хранится скорость каждой из машин, которую можно умножить на 24 и вывести индекс того элемента списка, у которого получившееся значение выше остальных

Comment on lines 61 to 79
while(!prov2){
System.out.println("Введите скорость машины " + nameCar3+" :");
try{
while(true){
speedCar3 = scanner.nextInt();
Car car3 = new Car(nameCar3, speedCar3);
if(car3.speed>0&&car3.speed<251){
cars.add(car3);
System.out.println(car3.name + " подходит! Она проедет "+ leMan(car3.speed) +" за 24 часа.");
break;
}else{
System.out.println("Машина не подходит на гонку допускаются машины со скоростью до 250 км/ч. Попробуйте еще раз, так как скорость "+ car3.name +" = "+ car3.speed +" км/ч.");
}
}
prov2 = true;
}catch(Exception exception){
System.out.println("Некорректный ввод. Пожалуйста, введите скорость.");
scanner.nextLine();
}

Choose a reason for hiding this comment

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

Общий код лучше выносить в отдельные функции. Сейчас у тебя копируется код, который считывает и валидирует каждую из машин, этот код можно обобщить в одной функции и использовать её в трёх местах

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants