Skip to content

Калькулятор счёта - #1

Open
investbankir wants to merge 2 commits into
mainfrom
dev
Open

investbankir wants to merge 2 commits into
mainfrom
dev

Conversation

@investbankir

Copy link
Copy Markdown
Owner

Проектная работа 1 от студента 14й когорты Черкасова Сергея.

Данное приложение на первом этапе запрашивает у пользователя количество на какое количество человек необходимо разделить счёт после чего при получении положительного ответа переходит к запросу позиций меню и их стоимости.
После ввода всех позиций чека пользователь завершает ввод ключевым словом "Закончить" и приложение показывает ему весь перечень товаров (блюд), итоговую сумму заказа и делит её поровну между всеми гостями.

Comment thread src/main/java/Main.java Outdated
System.out.println("Hello world!");
System.out.println("На скольких человек необходимо разделить счёт?");
Scanner sc = new Scanner(System.in);
int guests = 0;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Нулевые значения можно не писать, так как эти значения компилятор и так бы проинициализировал с дефолтными нулевыми значениями

Comment thread src/main/java/Main.java Outdated
break;
} else if (quantity == 1) {
System.out.println("Счёт на 1 человека ты и сам разделишь ;-) Попробуем снова?");
} else if (quantity < 1) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Пока дойдет до этого значения, то quantity сто процентов будет меньше 1 (так как значения 1 и выше будут уже отсеяны). Поэтому можно написать просто else без дополнительного if

Comment thread src/main/java/Main.java Outdated
sc.nextLine();
break;
} else if (quantity == 1) {
System.out.println("Счёт на 1 человека ты и сам разделишь ;-) Попробуем снова?");

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Мне нравится, когда добавляют что-то веселое в работы)

Comment thread src/main/java/Main.java

System.out.println(dish + " - " + formatPrice(price));

list = list.concat(dish+"").concat("\n");

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Более эффективный способ использовать StringBuilder. Метод concat у строки каждый раз создает новый строковый объект вместо изменения текущего.

Другой вариант, вместо строки можно добавлять продукты в массив и работать уже с ним)

Comment thread src/main/java/Main.java

String rubleWord = "";

if (rubles % 10 == 1 && rubles % 100 != 11) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

rubles % 10 и rubles % 100 можно сохранить в отдельные переменные, чтобы каждый раз не вычислять и не ошибиться

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Также можно вместо if использовать конструкцию switch-case. Она пригождается, когда много разветвлений

Comment thread src/main/java/Main.java
rubleWord = "рублей";
}

return rubles + " " + rubleWord + " " + kopecks + " коп.";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Также можно использовать String.format(). Он есть в статье на хабре, которая прикреплена к рекомендации про StringBuilder)

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.

2 participants