Repository navigation
create Calculator - #1
dencharski wants to merge 2 commits into
Conversation
| System.out.println("На сколько человек делим счет?"); | ||
|
|
||
| try { | ||
| String s = scanner.next(); |
There was a problem hiding this comment.
У Scanner есть удобный метод hasNextInt, можно сразу узнать без дополнительных проверок возможно ли интерпретировать строку как int
| System.out.println("Ошибка! " + errorString); | ||
| } | ||
|
|
||
| static void onDestroy() { |
There was a problem hiding this comment.
Совсем не обязательно пытаться уничтожить объекты самостоятельно, после завершения программы, сборщик мусора будет удалять эти объекты, а их зануление по факту ничего не делает.
| } | ||
| priceForOnePeople = finalPrice / peoples; | ||
|
|
||
| return ("Продукт " + product.productName + " по цене " + product.productPrice + " добавлен."); |
There was a problem hiding this comment.
В таких случаях для вывода лучше использовать System.out.printf, ему можно передать параметры, которые будут поставлены в строку.
| private String convertPriceToString(double price) { | ||
| String stringPrice = String.format("%.2f", price); | ||
| String zeroEnd = "0"; | ||
| if (stringPrice.endsWith(zeroEnd)) { |
There was a problem hiding this comment.
Немного некорректно рассчитывается окончание. Получается если цена будет 14 рублей, метод вернет рубля. Правильный алгоритм звучит так - Округлить double до целых, проверить лежит ли остаток от деления на 100 в интервале от 11 до 14 включительно, если да, то окончание "рублей", если нет, то берем остаток от деления на 10 и проверяем: если 1 - рубль, если 2-4 - рубля, остальные случаи - рублей. То есть нужно во-первых проверять именно остаток от деления, во-вторых учесть, что числа заканчивающиеся на 11-12-13-14 и заканчивающиеся на 1-2-3-4, будут иметь разные окончания
| } else { | ||
| allProductNames = allProductNames + ", \n" + product.productName; | ||
| } | ||
| priceForOnePeople = finalPrice / peoples; |
There was a problem hiding this comment.
Можно посчитать это значение один раз - при выводе значения в getPriceForOnePeople
-deleted fun onDestroy(). -in fun addProduct() change return String to String.format(). -changed the calculation of the endings of the word "рубль". -the variable "priceForOnePeople" is counted once
No description provided.