Repository navigation
Conversation
| private String rubbleProperCase(Double sum) { | ||
| int intSum = (int)Math.floor(sum); | ||
|
|
||
| if (intSum%10==1) { | ||
| return "рубль"; | ||
| } | ||
| else if (intSum%10==2 && intSum!=12) { | ||
| return "рубля"; | ||
| } | ||
| else if (intSum%10==3 && intSum!=13) { | ||
| return "рубля"; | ||
| } | ||
| else if (intSum%10==4 && intSum!=14) { | ||
| return "рубля"; | ||
| } | ||
| else { | ||
| return "рублей"; | ||
| } |
There was a problem hiding this comment.
⚠ Некорректно рассчитывается окончание. Например, если цена на каждого будет 114, то получается 114,00 рубля. Лучше переработать и учесть проверку остатка при делении на 100
| System.out.print("На сколько гостей разбить чек? "); | ||
| int numberOfPersons = scanner.nextInt(); | ||
| if (numberOfPersons>1) { | ||
| bill = new Bill(numberOfPersons); | ||
| break; | ||
| } |
There was a problem hiding this comment.
⚠ Пользователь может ввести на вопрос про количество человек вместо чисел строки, и приложение упадет. Лучше такого не допускать, а обрабатывать. Можно использовать методы scanner.hasNextInt()/hasNextFloat() или try-catch
| System.out.print("Введите цену блюда: "); | ||
| double inputPrice = scanner.nextDouble(); | ||
| Dish dish = new Dish(inputString, inputPrice); | ||
| bill.addDish(dish); | ||
|
|
There was a problem hiding this comment.
⚠ Пользователь может ввести на вопрос про стоимость товара вместо чисел строки, и приложение упадет. Лучше такого не допускать, а обрабатывать. Можно использовать методы scanner.hasNextInt()/hasNextFloat() или try-catch
| } | ||
| System.out.println("Неверное значение. Количество гостей должно быть больше 1. Попробуйте еще раз."); | ||
| } | ||
| scanner.nextLine();//Вынужденная мера для обхода ошибки https://stackoverflow.com/questions/23450524/java-scanner-doesnt-wait-for-user-input |
There was a problem hiding this comment.
🍏 В данной ситуации это нормально
No description provided.