Skip to content
Closed
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
100 changes: 97 additions & 3 deletions src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,103 @@
import java.util.Random;
import java.util.Scanner;

// dev branch for Y.Practicum
public class Main {
static CountPersons countPersons = new CountPersons();
static int persons = 0;
static double sum = 0;

public static void main(String[] args) {
// ваш код начнется здесь
// вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости
System.out.println("Привет Мир");
countPersons.quantityOfPersons();
addProduct();
finish();

}
public static class CountPersons {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Лучше вынести в отдельный файл



void quantityOfPersons() {
Scanner scanner = new Scanner(System.in);
System.out.println("Сколько вас человек?");
while (true) {
if (scanner.hasNextInt()) {
persons = scanner.nextInt();

@gusar-off gusar-off Jan 29, 2023 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Получается ты проверяешь есть ли в пользовательском инпуте double, а парсишь его как int, это вызовет исключение java.util.InputMismatchException. В данном случае нужно использовать метод hasNextInt

if (persons == 1) {
System.out.println("Вы один, нет смысла делить.");
} else if (persons < 1) {
System.out.println("Неверное значение меньше 1");
} else if (persons > 1) {
break;
}
}
else {
System.out.println("Вы ввели не число");
scanner.next();
}

}
}
}
public static void addProduct() {
Scanner scanner = new Scanner(System.in);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Лучшее переиспользовать инстанс Scanner, а не создавать каждый раз новый.

double price = 0;
String productList = "Добавленные товары: \n";
String product = null;

System.out.println("напишите блюдо");

while ((product = scanner.nextLine()) != null) {
if (product.equalsIgnoreCase("Завершить")) {
System.out.println(productList);
String str2 = String.format("Общая сумма товаров составила: %.2f", sum);
System.out.println(str2);
break;
}
System.out.println("сколько стоит блюдо?");
while (true) {
if (scanner.hasNextDouble()) {
price = scanner.nextDouble();
if (price < 0) {
System.out.println("Введённая сумма меньше 0");
} else if (price >= 0) {
sum += price;
productList += product + "\n";
String str = String.format("%s стоимостью %.2f добавлено. Сумма: %.2f", product, price, sum);
System.out.println(str);
System.out.println("напишите блюдо");
break;
}
}
else {
System.out.println("Введено не число");
scanner.next();
}

}
scanner.nextLine();
}
}

public static void finish() {
double total = sum/persons;
int num1 = (int) (total);
String result = null;
if (total % 100 > 4 && total % 100 < 21) {
result = "рублей";
} else if (total % 10 == 1) {
result = "рубль";
} else if (total % 10 > 1 && total % 10 < 5) {
result = "рубля";
}
int num2 = persons;
String result2 = null;
if (num2 % 100 > 4 && num2 % 100 < 21) {
result2 = "человека";
} else if (num2 % 10 > 1 && num2 % 10 < 5) {
result2 = "человек";
String str = String.format("Вас %d %s, С каждого по %.2f %s", persons, result2, total, result);
System.out.println(str);
}
}
}