Skip to content

Пишим первое консольно приложение#1

Open
Gammius wants to merge 2 commits intomainfrom
dev
Open

Пишим первое консольно приложение#1
Gammius wants to merge 2 commits intomainfrom
dev

Conversation

@Gammius
Copy link
Copy Markdown
Owner

@Gammius Gammius commented Apr 3, 2024

Пишим первое консольно приложение

Comment on lines +14 to +16
result2 = (int)Math.floor(sum / Main.quantity);
float result = sum / Main.quantity;
rub.formatRub(result2);
Copy link
Copy Markdown

@IvanGusevE IvanGusevE Apr 4, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Предлагаю передавать количество quantity в качестве дополнительного параметра в функцию samib. Такой подход делает класс Calculator более независимым от класса Main, что повышает его переиспользуемость.

Также лучше перенести логику округления в функцию класса Formatter, поскольку он отвечает за форматирование данных и их представление.

@@ -0,0 +1,15 @@
public class Formatter {
public static String padezh;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вместо использования переменной padezh лучше получать отформатированную строку через метод formatRub (поскольку метод уже возвращает строку). Это позволит избавиться от лишней переменной и уменьшит сложность класса, так как логика форматирования будет инкапсулирована в соответствующем методе.

Comment on lines +6 to +12
if(x == 0 || (x >= 5 && x <= 9) || (y>= 11 && y <= 14)){
padezh = "рублей";
}else if (x == 1 ) {
padezh = "рубль";
}else {
padezh = "рубля";
}
Copy link
Copy Markdown

@IvanGusevE IvanGusevE Apr 4, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Условие (x >= 5 && x <= 9) можно сократить до x >= 5, т.к. переменная x никогда не будет больше 10.
Также если у тебя получится избавится от свойства класса padezh, можно будет переписать метод следующим образом:

        if(...){
            return "рублей";
        }else if (x == 1 ) {
            return "рубль";
        }else {
            return  "рубля";
        }

Но еще лучше будет попробовать переписать эти условия на switch ... case

@@ -0,0 +1,12 @@
import java.util.ArrayList;
public class Products {
ArrayList<String> products = new ArrayList<>();
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Было бы лучше создать отдельный класс Product, содержащий следующие поля:

  • name - имя продукта;
  • price - его цена.

Таким образом, вместо списка строк мы будем использовать список объектов класса Product. Это также позволит избавиться от необходимости хранить отдельный список prices в классе Calculator.

критические испрвил
не критические частично
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants