Skip to content

Правильная версия пул реквеста - #1

Open
Dmitry-664 wants to merge 5 commits into
mainfrom
dev
Open

Dmitry-664 wants to merge 5 commits into
mainfrom
dev

Conversation

@Dmitry-664

Copy link
Copy Markdown
Owner

No description provided.

@ilshat-abdulin ilshat-abdulin left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Также по работе есть невыполнение пункта "Написать код не в одном классе Main". Попробуй вынести в отдельные классы функционал расчета и формирования данных для вывода на консоль. Например, назвать такой класс Calculator и вызывать его методы в main, при вводе данных с консоли. Также рекомендую вынести в отдельный метод (можно объявить в классе Main) логику вычисления окончания слова "рубль", который будет на вход принимать числовое значение и возвращать результат вычисления

Comment thread src/main/java/Main.java Outdated
Comment on lines +9 to +14
while (peopleCount <= 1) {
System.out.println("Введите количество гостей");
peopleCount = scanner.nextInt();
if (peopleCount <= 1) {
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.

⚠ Это хорошо, что ты исключаешь возможность ввода отрицательного значения. Также нужно исключить возможность ввода строки, иначе приложение упадет с ошибкой. Можно использовать метод scanner.hasNextInt() или try-catch

image

Comment thread src/main/java/Main.java Outdated
Comment on lines +27 to +29
price = scanner.nextDouble();
calculator = calculator + price;
System.out.println("Товар успешно добавлен.\nХотите ли Вы добавить ещё товар?\nЕсли нет, то нажмите \"Завершить\".");

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠ Здесь тоже лучше обрабатывать ситуацию, когда пользователь ввёл строку или отрицательное значение (стоимость товара не может быть отрицательной)
image

Comment thread src/main/java/Main.java Outdated
Comment on lines +31 to +33
if (answer.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.

⚠ При вводе "Завершить" программа останавливается. Информация о добавленных товарах, стоимости не выводится. Это происходит из-за того, что код с выводом информации включен в while цикл, который прерывается командой break, если пользователь ввел "Завершить". В цикле нужно оставить только код, который отвечает за ввод данных, а вычисления должны производится после этого цикла

Comment thread src/main/java/Main.java Outdated

double calculator = 0;
double price = 0;
String nameProduct = "";

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/Main.java Outdated
double price = 0;
String nameProduct = "";
String product = "";
String finish = "Завершить";

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

double everyCheck = calculator / peopleCount;
String.format("%.2f", everyCheck);

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().

Comment thread src/main/java/Main.java Outdated
Comment on lines +37 to +67
String rub = "";
int sumCheck = (int) ((Math.floor(everyCheck))%10);
switch (sumCheck) {
case 1:
rub = "Рубль";
break;
case 2:
rub = "Рубля";
break;
case 3:
rub = "Рубля";
break;
case 4:
rub = "Рубля";
break;
case 5:
rub = "Рублей";
break;
case 9:
rub = "Рублей";
break;
case 12:
rub = "Рублей";
break;
case 18:
rub = "Рублей";
break;
default:
rub = "Рублей";
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.

⚠ Правильность расчета окончания слова "рубль" нужно дополнить. Т.к. если значение суммы, например, будет 114, то получится 114 рубля. Нужно еще дополнительно учесть, что для чисел 11-19 должно быть "рублей" - для этого стоит проверять, что <число> % 100 находится между 11 и 19 включительно.

🍏 Проверки в switch можно сократить следующим образом

            switch (sumCheck) {
                case 1:
                    rub = "Рубль";
                    break;
                case 2, 4, 3:
                    rub = "Рубля";
                    break;
                default:
                    rub = "Рублей";
                    break;
            }

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