// dev branch for Y.Practicum import java.lang.invoke.ConstantCallSite; import java.util.Scanner; class Dish { String name; double price; Dish(String name, double price) { this.name = name; this.price = price; } } class Bill { int numberOfPersons; String listOfDishes; double totalSum; Bill(int numberOfPersons) { this.numberOfPersons = numberOfPersons; this.listOfDishes = ""; this.totalSum = 0; } public void addDish(Dish dish) { this.listOfDishes = this.listOfDishes + (this.listOfDishes.length()==0 ? "" : "\n") + dish.name; this.totalSum += dish.price; System.out.println("ÐлÑдо " + dish.name + " добавлено в Ñек"); } public void print() { System.out.println("ÐобавленнÑе ÑоваÑÑ:"); System.out.println(listOfDishes); } } class Calculator { Bill bill; Calculator(Bill bill) { this.bill = bill; } public double payment() { return bill.totalSum/bill.numberOfPersons; } public String formattedOutPut() { double payment = this.payment(); return String.format("%.2f " + this.rubbleProperCase(payment), payment); } private String rubbleProperCase(Double sum) { int intSum = (int)Math.floor(sum); if (intSum%10==1 && intSum%100!=11) { return "ÑÑблÑ"; } else if (intSum%10==2 && intSum%100!=12) { return "ÑÑблÑ"; } else if (intSum%10==3 && intSum%100!=13) { return "ÑÑблÑ"; } else if (intSum%10==4 && intSum%100!=14) { return "ÑÑблÑ"; } else { return "ÑÑблей"; } } } public class Main { public static void main(String[] args) { Bill bill; Scanner scanner = new Scanner(System.in); //ÐолÑÑаем колиÑеÑÑво гоÑÑей while (true) { System.out.print("Ðа ÑколÑко гоÑÑей ÑазбиÑÑ Ñек? "); if (scanner.hasNextInt()) { int numberOfPersons = scanner.nextInt(); if (numberOfPersons > 1) { bill = new Bill(numberOfPersons); break; } } scanner.nextLine(); System.out.println("ÐевеÑное знаÑение. ÐолиÑеÑÑво гоÑÑей должно бÑÑÑ Ð±Ð¾Ð»ÑÑе 1. ÐопÑобÑйÑе еÑе Ñаз."); } scanner.nextLine();//ÐÑнÑÐ¶Ð´ÐµÐ½Ð½Ð°Ñ Ð¼ÐµÑа Ð´Ð»Ñ Ð¾Ð±Ñ Ð¾Ð´Ð° оÑибки https://stackoverflow.com/questions/23450524/java-scanner-doesnt-wait-for-user-input while (true) { System.out.print("ÐведиÑе название блÑда или ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÐавеÑÑиÑÑ: "); String inputString = scanner.nextLine(); if (inputString.equalsIgnoreCase("завеÑÑиÑÑ")) { break; } while (true) { System.out.print("ÐведиÑе ÑÐµÐ½Ñ Ð±Ð»Ñда: "); if (scanner.hasNextDouble()) { double inputPrice = scanner.nextDouble(); if (inputPrice>0) { Dish dish = new Dish(inputString, inputPrice); bill.addDish(dish); break; } } scanner.nextLine(); } scanner.nextLine();//аналогиÑно, комменÑаÑÐ¸Ñ Ð²ÑÑе } bill.print();//вÑводим ÑÑÐµÑ Ð½Ð° ÑкÑан Calculator calc = new Calculator(bill); System.out.println(calc.formattedOutPut());//вÑводим иÑог ÑаÑÑеÑа scanner.close(); } }