консольное приложение №1#1
Conversation
| import java.util.Scanner; | ||
|
|
||
| public class Main { | ||
| static class Product { |
There was a problem hiding this comment.
| } | ||
|
|
||
|
|
||
| static void inputProduct(Scanner scanner, Basket basket) { |
There was a problem hiding this comment.
⏫ Сканер можно не передавать в качестве параметра везде, а просто вынести в поле класса Main
| String name = scanner.nextLine(); | ||
| System.out.println("Введите стоимость товара"); | ||
| double price = Double.parseDouble(scanner.nextLine()); | ||
| basket.add(new Product(name, price)); |
There was a problem hiding this comment.
| char lastChar = rub.charAt(indexOf - 1); | ||
| if (lastChar == '1') { | ||
| return "рубль"; | ||
| } else if ("234".indexOf(lastChar) != -1) { |
There was a problem hiding this comment.
⏫ Такой indexOf можно заменить на contains.
|
|
||
| String inclineRubEnding(String rub) { | ||
| int indexOf = rub.indexOf("."); | ||
| char lastChar = rub.charAt(indexOf - 1); |
There was a problem hiding this comment.
⏫ Для нахождения нужных последних цифр лучше использовать остаток от деления. Например, 21 % 10 даст нам цифру 1, а 111 % 100 даст нам последние 2 цифры
| try { | ||
| num = Integer.parseInt(scanner.nextLine()); | ||
| } catch (NumberFormatException e) { | ||
|
|
There was a problem hiding this comment.
⏫ Неплохо бы что-нибудь тут написать. Например, сказать, что нужно вводить число, а не буквы
- поправила ф-ию вычисления окончания - проверила, что не вводят неккоректные значения
|
|
||
| class Basket { | ||
| List<String> products = new ArrayList<>(); | ||
| double sum = 0.0; |
| List<String> products = new ArrayList<>(); | ||
| double sum = 0.0; | ||
|
|
||
| String inclineRubleEnding(int ruble) { |
| for (String product : products) { | ||
| System.out.println(product); | ||
| } | ||
| System.out.println(String.format(Locale.US, "%.2f", sum / numberOfPersons) |
There was a problem hiding this comment.
⏫ Для информативности можно добавить текста. Например, "Каждый должен заплатить по:"
| + " " + inclineRubleEnding((int) Math.floor(sum / numberOfPersons))); | ||
| } | ||
|
|
||
| void add(Product product) { |
There was a problem hiding this comment.
⏫ В целом сюда можно просто сразу передать имя и цену товара и избавиться таким образов от класса Product. Просто больше этот класс нигде не используется, а создается и сразу же из него берутся поля, поэтому заворчивать их в этот класс - мало пользы
Версия 1