Skip to content

Задание готово, все работает#1

Open
ProjectKredos wants to merge 6 commits intodevfrom
main
Open

Задание готово, все работает#1
ProjectKredos wants to merge 6 commits intodevfrom
main

Conversation

@ProjectKredos
Copy link
Copy Markdown
Owner

Задание готово

Copy link
Copy Markdown

@SeveNChaK SeveNChaK left a comment

Choose a reason for hiding this comment

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

В некоторых файлах отступы не одинаковые - рекомендую использовать встроенные форматтер. Если ты программируешь в IDE от JetBrains, то можешь пройтись по всем файлам и нажать комбинацию (Windows: Shift + Ctrl + Alt + L, MacOS: Shift + Option + Command + L), затем выбрать, какую часть кода хочешь изменить, и выполнить команду. Среда разработки автоматически сделает нужные отступы и переносы (как она это делает можно изменить в настройках, но дефолтные значения вполне нормальные).

@@ -0,0 +1,36 @@
import java.util.Scanner;

public class goods {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⏫ Название классов принято писать с большой буквы

Scanner scanner = new Scanner(System.in);
System.out.println("На скольких человек необходимо разделить счёт?");
while (true) {
countUser = scanner.nextInt();
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Не хватает проверки на не корректный ввод, например, если введут буквы.

System.out.println("Введите цену товара");
goodsPrice = scanner.nextDouble();
System.out.println("Товар " + goodsName + " за " + goodsPrice + " " + rubToText(goodsPrice) + " успешно добавлен. Добавьте еще или завершите." );
goodsList = goodsList + "\n" + goodsName + " " + goodsPrice;
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 - неизменяемый класс, при каждом сложении строк создается новый экземпляр строки. А так как ты не ведешь список товаров, а сразу плюсуешь все в строку, то у тебя будет создавать очень много объектов строковых. Для таких ситуаций лучше использовать StringBuilder.
Про стринг билдер

goodsName = scanner.next();
if (goodsName.equalsIgnoreCase("Завершить") ) {break;}
System.out.println("Введите цену товара");
goodsPrice = scanner.nextDouble();
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 static String rubToText(double sumRub){
if (sumRub<2) { return("рубль");
} else if (sumRub>5) { return("рублей");
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Для чисел больше 20, которые оканчиваются на 1-4 здесь используется не правильное склонение - "рублей"

1) Корректность склонения "Рубли";
2) Использован String Bilder;
3) Добавлены проверки:
- Ввод текста вместо цифр
- Ввод отрицательных цен
4) Выровнен код через Ctrl + Alt + Shift + L
5) Исправлено написание классов "С большой буквы"
1) Корректность склонения "Рубли";
2) Использован String Bilder;
3) Добавлены проверки:
- Ввод текста вместо цифр
- Ввод отрицательных цен
4) Выровнен код через Ctrl + Alt + Shift + L
5) Исправлено написание классов "С большой буквы"
Исправлены:
1) Корректность склонения "Рубли";
2) Использован String Bilder;
3) Добавлены проверки:
- Ввод текста вместо цифр
- Ввод отрицательных цен
4) Выровнен код через Ctrl + Alt + Shift + L
5) Исправлено написание классов "С большой буквы"
Исправлены:
1) Корректность склонения "Рубли";
2) Использован String Bilder;
3) Добавлены проверки:
- Ввод текста вместо цифр
- Ввод отрицательных цен
4) Выровнен код через Ctrl + Alt + Shift + L
5) Исправлено написание классов "С большой буквы"
Исправлены:
1) Корректность склонения "Рубли";
2) Использован String Bilder;
3) Добавлены проверки:
- Ввод текста вместо цифр
- Ввод отрицательных цен
4) Выровнен код через Ctrl + Alt + Shift + L
5) Исправлено написание классов "С большой буквы"
if (priceScanner.hasNextDouble()) {
goodsPrice = priceScanner.nextDouble();
if (goodsPrice < 0) {
goodsPrice = Math.abs(goodsPrice);
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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

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