Skip to content

консольное приложение 2 спринт - #1

Open
OlegQt wants to merge 9 commits into
mainfrom
master
Open

OlegQt wants to merge 9 commits into
mainfrom
master

Conversation

@OlegQt

@OlegQt OlegQt commented Nov 23, 2022

Copy link
Copy Markdown
Owner

Реализовал через массив, мне показалось это логичным.

Comment thread src/main/java/Calc.java Outdated
}
System.out.println("Товар успешно добавлен, хотите продолжить? \n для завершения введите \"завершить\" ");
str = pScanner.next();
if(str.equalsIgnoreCase("завершить")) break;// Выходим, если введено завершить

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/Calc.java Outdated
ArrayList<Commodity> pList = new ArrayList<Commodity>();
double sum = 0; // Полная сумма всех товаров
public void startCalc()
{

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

В кодстиле джава рекомендуется не переносить скобочку на следующую строчку

public void startCalc() {

и так лучше сделать везде.

Comment thread src/main/java/Calc.java Outdated
{
System.out.println("Добавленные товары:");
this.sum = 0; // Перед расчетом обнулим сумму товаров на всякий случай
for (int i = 0; i < pList.size(); i++) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Тут лучше заменить на цикл foreach

for (Commodity item : pList) {

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Не знаю, можно ли здесь вопрос писать. Как этот цикл внутри выполняется: он так же прогоняет поштучно и по времени выходит то же самое, или кроме короткого синтаксиса в foreach есть выигрыш по скорости чтения?

Comment thread src/main/java/Calc.java Outdated
public void calculate(int personQuantity)
{
double money = this.sum/personQuantity;
//double money = 5.9589;

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/Calc.java Outdated
{
String strOst="";
num = Math.floor(num);
int ost = (int)(num % 10);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Немного некорректно рассчитывается окончание. Получается если цена будет 114 рублей, метод вернет "рубля". Правильный алгоритм звучит так:
Проверить лежит ли остаток от деления на 100 в интервале от 11 до 14 включительно, если да, то возвращаем "рублей", если нет, то берем остаток от деления на 10 и прогоняем с твоими проверками.
Тем самым учтем, что числа заканчивающиеся на 11-12-13-14 и заканчивающиеся на 1-2-3-4, будут иметь разные окончания.

Comment thread src/main/java/Calc.java Outdated
strOst="рублей";
break;
}
if(num>9&&num<21) strOst="рублей";

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/Calc.java
return "рублей";
}
}
public void releaseArray(){

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/Calc.java
System.out.println("Добавленные товары:");
this.sum = 0; // Перед расчетом обнулим сумму товаров на всякий случай
for ( Commodity i:pList){
i.showCommodity();

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Лучше давать осмысленные названия переменным, например тут можно назвать item

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