Repository navigation
Conversation
…фру и возврщает слово рубль в нужном падеже.
| } | ||
| System.out.println("Товар успешно добавлен, хотите продолжить? \n для завершения введите \"завершить\" "); | ||
| str = pScanner.next(); | ||
| if(str.equalsIgnoreCase("завершить")) break;// Выходим, если введено завершить |
There was a problem hiding this comment.
"завершить" лучше вынести в статическую константу
| ArrayList<Commodity> pList = new ArrayList<Commodity>(); | ||
| double sum = 0; // Полная сумма всех товаров | ||
| public void startCalc() | ||
| { |
There was a problem hiding this comment.
В кодстиле джава рекомендуется не переносить скобочку на следующую строчку
public void startCalc() {
и так лучше сделать везде.
| { | ||
| System.out.println("Добавленные товары:"); | ||
| this.sum = 0; // Перед расчетом обнулим сумму товаров на всякий случай | ||
| for (int i = 0; i < pList.size(); i++) { |
There was a problem hiding this comment.
Тут лучше заменить на цикл foreach
for (Commodity item : pList) {
There was a problem hiding this comment.
Не знаю, можно ли здесь вопрос писать. Как этот цикл внутри выполняется: он так же прогоняет поштучно и по времени выходит то же самое, или кроме короткого синтаксиса в foreach есть выигрыш по скорости чтения?
| public void calculate(int personQuantity) | ||
| { | ||
| double money = this.sum/personQuantity; | ||
| //double money = 5.9589; |
There was a problem hiding this comment.
Закомментированный код лучше убрать.
| { | ||
| String strOst=""; | ||
| num = Math.floor(num); | ||
| int ost = (int)(num % 10); |
There was a problem hiding this comment.
Немного некорректно рассчитывается окончание. Получается если цена будет 114 рублей, метод вернет "рубля". Правильный алгоритм звучит так:
Проверить лежит ли остаток от деления на 100 в интервале от 11 до 14 включительно, если да, то возвращаем "рублей", если нет, то берем остаток от деления на 10 и прогоняем с твоими проверками.
Тем самым учтем, что числа заканчивающиеся на 11-12-13-14 и заканчивающиеся на 1-2-3-4, будут иметь разные окончания.
| strOst="рублей"; | ||
| break; | ||
| } | ||
| if(num>9&&num<21) strOst="рублей"; |
Убрал лишние закомментированные строки Переделал цикл просмотра листа товаров Поправил функцию проверки итоговой суммы и ыбора падежа слова "рубль"
Убрал лишние закомментированные строки Переделал цикл просмотра листа товаров Поправил функцию проверки итоговой суммы и ыбора падежа слова "рубль"
| return "рублей"; | ||
| } | ||
| } | ||
| public void releaseArray(){ |
There was a problem hiding this comment.
Метод не используется, лучше тогда убрать
| System.out.println("Добавленные товары:"); | ||
| this.sum = 0; // Перед расчетом обнулим сумму товаров на всякий случай | ||
| for ( Commodity i:pList){ | ||
| i.showCommodity(); |
There was a problem hiding this comment.
Лучше давать осмысленные названия переменным, например тут можно назвать item
Реализовал через массив, мне показалось это логичным.