Skip to content

Creatint a Calculator program - #1

Open
KiMate34 wants to merge 3 commits into
mainfrom
dev
Open

KiMate34 wants to merge 3 commits into
mainfrom
dev

Conversation

@KiMate34

Copy link
Copy Markdown
Owner

Added and implemented class Calculater
Modified class Main

Comment thread src/main/java/Calculater.java Outdated
}
}

class Converter{

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🍏 В Java принято для каждого класса создавать отдельный файл

Comment thread src/main/java/Calculater.java Outdated
int persons = countingPersons();
double sum = 0;

System.out.println("Введите название товара и его стоимость" +

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/Calculater.java Outdated
}
catch (InputMismatchException e){
System.out.println("Вы ввели некорректный символ вместо числа. Введите данные заново");
countingProducts();

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/Calculater.java Outdated

float price = scanner.nextFloat();

list.add(name);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🍏 Рекомендую сохранять не просто строки, а объекты товаров с наименование и ценой. Можно потренироваться в этом проекте и создать класс Товар, который будет содержать два поля. Затем при распечатке списка товаров можно будет печатать не просто название, но и цену каждого из товаров.

Divided classes into files
Calculator class modification and rename file and class
Fix class Converter
Comment thread src/main/java/Converter.java Outdated
}

String check(){
if (count % 100 > 10 && count % 100 < 20){

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🍏 Чтобы не выполнять расчет остатка от деления по несколько раз, можно один раз их рассчитать в начале метода и сохранить в переменные.

Fix class Converter
Послание для Ревьюера:
Привет! Хочу поблагодарить вас за ваш код ревью! Вы очень доходчиво и понятно указываете на ошибки, более того подсказываете как сделать код архитектурно красивым. Вы просто прелесть, спасибо! Касательно бага по поводу завершения программы... Я попытался решить проблему при помощи преобразования и это привело меня к страшному условию: if(Integer.ToString((int)price.equalsIgnoreCase(exit)). Естественно, оно не заработало и я получил от компилятора по лицу пару раз) Поэтому решил явно указать пользователю где стои вводить команду "Завершить" для остановки программы и подсчёта результата.

System.out.println("Добавленные товары:");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).name + " " + list.get(i).price);

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, который сформирует только результирующую строку.
https://habr.com/ru/articles/260767/

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