Repository navigation
Conversation
SeveNChaK
left a comment
There was a problem hiding this comment.
В файлах код прыгает, отступы не одинаковые - рекомендую использовать встроенные форматтер. Если ты программируешь в IDE от JetBrains, то можешь пройтись по всем файлам и нажать комбинацию (Windows: Shift + Ctrl + Alt + L, MacOS: Shift + Option + Command + L), затем выбрать, какую часть кода хочешь изменить, и выполнить команду. Среда разработки автоматически сделает нужные отступы и переносы (как она это делает можно изменить в настройках, но дефолтные значения вполне нормальные).
|
|
||
| while(start) { | ||
| System.out.println("На сколько человек делим счет?"); | ||
| int numberPeople = scanner.nextInt(); |
There was a problem hiding this comment.
| int numberPeople = scanner.nextInt(); | ||
|
|
||
| if ( numberPeople > 1 ) { | ||
| Calculator calculator = new Calculator(); |
There was a problem hiding this comment.
⏫ Сейчас здесь варнинг потому что все мтоды в классе Calculator статические, а значит для обращения к ним не требуется экземпляр класса. Поэтому если ты обратишься к нужному метод так: Calculator.calculator(numberPeople); - то варнинг уйдет.
| if ( numberPeople > 1 ) { | ||
| Calculator calculator = new Calculator(); | ||
| calculator.calculator( numberPeople ); | ||
| start = false; |
There was a problem hiding this comment.
⏫ Можно не заводить переменную, а просто сделать цикл while (true) { ... }, а здесь вызвать break - этот вызов прерывает цикл и выходит из него.
| String list = "" ; | ||
| String endingRub = ""; | ||
| String endingSum = ""; | ||
| Double sumEach ; |
| DecimalFormat decimalFormat = new DecimalFormat( "#.##" ); | ||
|
|
||
|
|
||
| while (goodsNext) { |
There was a problem hiding this comment.
⏫ Тут варнинг, потому что всегда true и переменная никак не меняется. Поэтому можно просто здесь написатьwhile(true) и варнинг уйдет.
| Scanner scanner = new Scanner(System.in); | ||
| String nameGoods = scanner.nextLine(); | ||
|
|
||
| if (nameGoods.equalsIgnoreCase(finish)) { |
There was a problem hiding this comment.
⏫ Не хватает сообщения про ввод "завершить", сейчас не понятно когда это нужно вводить
|
|
||
| decimalFormat.format(price); | ||
|
|
||
| list = list + " \n" + nameGoods + " – " + price + " рубл" + endingRub ; |
There was a problem hiding this comment.
⏫ Тут как раз варнинг про сложение строк. Так как String является неизменяемым объектом, то при каждом сложении строк создаются новые объекты, что расходует память. Для таких случаев лучше использовать StringBuilder
|
|
||
| int priceInt = (int)price; | ||
|
|
||
| if (priceInt == 11) { |
There was a problem hiding this comment.
Надо проверять последнюю или 2 последних цифры числа, в зависимости от ситуации, чтобы правильно определить склонение. Есть несколько случаев, которые нужно проверить, когда заканчивается на:
- 0
- 1
- 2-4
- 5-9
- и исключение, когда надо проверять, что заканчивается на 11-14
| } No newline at end of file | ||
| } | ||
|
|
||
| class Calculator { |
There was a problem hiding this comment.
Смотря какие варнинги. Которые я указал, лучше поправить, но на принятие работы это не повлияет. |
| break; | ||
| } | ||
| } | ||
| } else { |
There was a problem hiding this comment.
⏫ тут код по сути дублируется, поэтому можно не делать if, а просто вынести и оставить только код, который в первой ветке
price %= 100;
if (price == 11 || price == 12 || price == 13 || price == 14) {
ending = endingThree;
} else {
priceInt %= 10;
switch (priceInt) {
case 1:
ending = endingOne;
break;
case 2:
case 3:
case 4:
ending = endingTwo;
break;
default:
ending = endingThree;
break;
}
}
Этого должно хватить
Программа у меня запускается и отрабатывает, но там есть некоторое количество warning-ов. Не знаю, критично это или нет?