Repository navigation
Правильная версия пул реквеста - #1
Dmitry-664 wants to merge 5 commits into
Conversation
ilshat-abdulin
left a comment
There was a problem hiding this comment.
Также по работе есть невыполнение пункта "Написать код не в одном классе Main". Попробуй вынести в отдельные классы функционал расчета и формирования данных для вывода на консоль. Например, назвать такой класс Calculator и вызывать его методы в main, при вводе данных с консоли. Также рекомендую вынести в отдельный метод (можно объявить в классе Main) логику вычисления окончания слова "рубль", который будет на вход принимать числовое значение и возвращать результат вычисления
| while (peopleCount <= 1) { | ||
| System.out.println("Введите количество гостей"); | ||
| peopleCount = scanner.nextInt(); | ||
| if (peopleCount <= 1) { | ||
| System.out.println("Пожалуйста введите корректное значение"); | ||
| } |
| price = scanner.nextDouble(); | ||
| calculator = calculator + price; | ||
| System.out.println("Товар успешно добавлен.\nХотите ли Вы добавить ещё товар?\nЕсли нет, то нажмите \"Завершить\"."); |
| if (answer.equalsIgnoreCase("Завершить")) { | ||
| break; | ||
| } |
There was a problem hiding this comment.
⚠ При вводе "Завершить" программа останавливается. Информация о добавленных товарах, стоимости не выводится. Это происходит из-за того, что код с выводом информации включен в while цикл, который прерывается командой break, если пользователь ввел "Завершить". В цикле нужно оставить только код, который отвечает за ввод данных, а вычисления должны производится после этого цикла
|
|
||
| double calculator = 0; | ||
| double price = 0; | ||
| String nameProduct = ""; |
There was a problem hiding this comment.
⚠В эту переменную у тебя складываются добавленные товары, но она не используется для вывода на консоль
| double price = 0; | ||
| String nameProduct = ""; | ||
| String product = ""; | ||
| String finish = "Завершить"; |
There was a problem hiding this comment.
🍏 А эту переменную, если она не используется, то лучше удалить
| } | ||
|
|
||
| double everyCheck = calculator / peopleCount; | ||
| String.format("%.2f", everyCheck); |
There was a problem hiding this comment.
🍏 Результат форматирования нигде не используется - можно удалить. Так как такой же код используется у тебя в конце в System.out.println().
| 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; | ||
| } |
There was a problem hiding this comment.
⚠ Правильность расчета окончания слова "рубль" нужно дополнить. Т.к. если значение суммы, например, будет 114, то получится 114 рубля. Нужно еще дополнительно учесть, что для чисел 11-19 должно быть "рублей" - для этого стоит проверять, что <число> % 100 находится между 11 и 19 включительно.
🍏 Проверки в switch можно сократить следующим образом
switch (sumCheck) {
case 1:
rub = "Рубль";
break;
case 2, 4, 3:
rub = "Рубля";
break;
default:
rub = "Рублей";
break;
}


No description provided.