Conversation
# Conflicts: # src/main/java/Calc.java
src/main/java/MainCalc.java
Outdated
| } else { | ||
| scanner.next(); | ||
| } | ||
| System.out.println("Ошибка.Введите еще раз"); |
There was a problem hiding this comment.
🍏 Круто было бы подсказать пользователю, какие данные от него ожидаются
| System.out.println("Товар " + nameProduct + " по цене " + String.format(MainCalc.loc,"%.2f", priceProduct) + " успешно добавлен!"); | ||
| goodsStr = goodsStr.concat("\n" + nameProduct); | ||
| goodsSum += priceProduct; | ||
| System.out.println("Добавить следующий товар? (Для выхода введите \"завершить\")"); |
There was a problem hiding this comment.
👏 Круто, что подсказываешь пользователю, как выйти из сценария!
src/main/java/Calc.java
Outdated
| double priceProduct=-1; | ||
| System.out.println("Введите название товара:"); | ||
| String nameProduct= MainCalc.scanner.nextLine(); | ||
| System.out.println("Введите цену товара:"); |
There was a problem hiding this comment.
🍏 Классно было бы подсказать пользователю, в каком формате от него ожидаются данные
src/main/java/Calc.java
Outdated
| priceProduct = MainCalc.scanner.nextDouble(); | ||
| } | ||
| if((priceProduct>0)&&(nameProduct.length()>0)){ | ||
| System.out.println("Товар " + nameProduct + " по цене " + String.format(MainCalc.loc,"%.2f", priceProduct) + " успешно добавлен!"); |
There was a problem hiding this comment.
🍏 При печати в памяти будут создаваться промежуточные строки из-за использования оператора "+". Можно использовать StringBuilder, который сформирует только результирующую строку. https://habr.com/ru/articles/260767/
src/main/java/MainCalc.java
Outdated
| import java.util.Scanner; | ||
|
|
||
| public class MainCalc { | ||
| public static final Scanner scanner = new Scanner(System.in); |
There was a problem hiding this comment.
🍏 Поля, которые хранят какое-то состояние, лучше не делать статическими, чтобы они корректно инициализировались и освобождали ресурсы, когда уже не нужны
src/main/java/MainCalc.java
Outdated
| System.out.println("Введите количество человек"); | ||
| while (true) { | ||
| if (scanner.hasNextInt()) { | ||
| int i =scanner.nextInt(); |
There was a problem hiding this comment.
🍏 Рекомендую не экономить на буквах и давать переменным развернутые имена)
src/main/java/MainCalc.java
Outdated
| while (true) { | ||
| if (scanner.hasNextInt()) { | ||
| int i =scanner.nextInt(); | ||
| if(i>1) return i; |
There was a problem hiding this comment.
🍏 Немного поехало форматирование. Для форматирования кода и удаления неиспользуемых импортов применяй следующие сочетания клавиш:
Windows: Control+Alt+L
MacOS: Command+Option+L
Больше горячих клавиш можно найти здесь: https://developer.android.com/studio/intro/keyboard-shortcuts
| public class Calc { | ||
| private double goodsSum; | ||
| private final int numPeople; | ||
| private String goodsStr = ""; |
There was a problem hiding this comment.
🍏 Можно не просто в строке сохранять имена товаров, а создать отдельный класс Product с полями name и price. Экземпляры этого класса можно сохранить в список. Это может быть удобно, если тебе в дальнейшем потребуется цена каждого товара.
src/main/java/Calc.java
Outdated
| numPeople = nPeople; | ||
| } | ||
|
|
||
| private String getOutStr(double sum) { |
There was a problem hiding this comment.
🍏 Можно вынести логику форматирования в отдельный класс Formatter, чтобы ее можно было при необходимости использовать в других местах приложения
src/main/java/Calc.java
Outdated
| }else { | ||
| System.out.println("Ошибка ввода данных"); | ||
| MainCalc.scanner.nextLine(); | ||
| //if(nameProduct.length()<0) MainCalc.scanner.nextLine(); |
There was a problem hiding this comment.
🍏 Неиспользуемый код лучше удалить перед пулл реквестом
src/main/java/MainCalc.java
Outdated
| public static final Locale loc = new Locale("en", "US"); | ||
| private static int getInt(){ | ||
| // public static final Locale loc = new Locale("en", "US"); | ||
| private static int getInt(Scanner scn){ |
There was a problem hiding this comment.
🍏 Рекомендую не экономить на буквах и давать аргументам/переменным развернутые имена)
release1