import java.util.Scanner; public class Calculator { static Scanner scanner = new Scanner(System.in); static String userInput = null; static String productName; static String allProductsList = "ÐобавленнÑе ÑоваÑÑ:"; static float productCost = 0.0F; static float allProductsCost = 0.0F; static float personalAmount = 0.0F; static String checkedNumber = null; static void printResult(int numberOfGuests) { while (!"ÐÐÐÐРШÐТЬ".equalsIgnoreCase(userInput)) {// Ñикл пÑодолжаеÑÑÑ Ð´Ð¾ ввода Ñлова "завÑеÑиÑÑ" игноÑиÑÑÑ ÑегиÑÑÑ Ð±Ñкв System.out.println("ÐведиÑе название ÑоваÑа и его ÑенÑ.\nТоваÑ: "); productName = scanner.next(); allProductsList = allProductsList + "\n" + productName; System.out.println("ÐведиÑе ÑÑоимоÑÑÑ: "); checkedNumber = scanner.next(); while (true) {// Ñикл пÑовеÑÑÐµÑ ÑиÑло ли ввÑл полÑзоваÑÐµÐ»Ñ Ð¸ не ÑвлÑеÑÑÑ Ð»Ð¸ оно оÑÑиÑаÑелÑнÑм if (!isItaNumber(checkedNumber)) { System.out.println("Ðип, оÑибка. ÐÑо не ÑиÑло, либо Ð²Ñ Ð² каÑеÑÑве делиÑÐµÐ»Ñ Ð¸ÑполÑзÑеÑе запÑÑÑÑ Ð²Ð¼ÐµÑÑо ÑоÑки.\nÐопÑобÑйÑе еÑÑ Ñаз. ÐведиÑе ÑенÑ: "); checkedNumber = scanner.next(); } else if (!isItPositive(productCost = Float.parseFloat(checkedNumber))) { System.out.println("Ðип, оÑибка. Цена не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾ÑÑиÑаÑелÑной!\nÐопÑобÑйÑе еÑÑ Ñаз. ÐведиÑе ÑенÑ: "); checkedNumber = scanner.next(); } else { break; } } allProductsCost += productCost; System.out.println("ÐÑ ÑÑпеÑно добавили " + productName + " за " + String.format("%.2f", productCost) + " ÑÑблей.\nÐÑли Ñ Ð¾ÑиÑе завеÑÑиÑÑ, набеÑиÑе \"ÐавеÑÑиÑÑ\" и нажмиÑе \"enter\".\nÐÑли Ñ Ð¾ÑиÑе добавиÑÑ ÐµÑÑ Ð¾Ð´Ð¸Ð½ ÑоваÑ, введиÑе лÑбой Ñимвол или Ñлово и нажмиÑе \"enter\"."); userInput = scanner.next(); } String rubleEnding = getRubleEnding((int) Math.floor(allProductsCost)); // вÑÑÑнÑем веÑное оконÑание Ñлова "ÑÑблÑ" Ð´Ð»Ñ Ð¾Ð±Ñей ÑÑÐ¼Ð¼Ñ Ð·Ð°ÐºÐ°Ð·Ð° System.out.println(allProductsList + "\nÐбÑÐ°Ñ ÑÑмма: " + String.format("%.2f", allProductsCost) + rubleEnding); personalAmount = allProductsCost / numberOfGuests; String personalRubleEnding = getRubleEnding((int) Math.floor(personalAmount));// вÑÑÑнÑем веÑное оконÑание Ñлова "ÑÑблÑ" Ð´Ð»Ñ ÑÑÐ¼Ð¼Ñ Ð¾ÑделÑного гоÑÑÑ System.out.println("ÐÐ°Ð¶Ð´Ð¾Ð¼Ñ Ð³Ð¾ÑÑÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ заплаÑиÑÑ: " + String.format("%.2f", personalAmount) + personalRubleEnding); } private static boolean isItPositive(float productCost) {// пÑовеÑÑем не ÑвлÑеÑÑÑ Ð»Ð¸ ÑиÑло оÑÑиÑаÑелÑнÑм return productCost >= 0; } private static boolean isItaNumber(String checkedNumber) {// пÑовеÑÑем ÑиÑло ли ввÑл полÑзоваÑÐµÐ»Ñ return checkedNumber.matches("-?\\d+(\\.\\d+)?"); } public static String getRubleEnding(int wholeRubles) {// подбиÑаем пÑавлÑное оконÑание ÑÐ»Ð¾Ð²Ñ "ÑÑблÑ" int preLastDigit = wholeRubles % 100 / 10; if (preLastDigit == 1) { return " ÑÑблей."; } else { switch (wholeRubles % 10) { case 1: return " ÑÑблÑ."; case 2: case 3: case 4: return " ÑÑблÑ."; default: return " ÑÑблей."; } } } }