Skip to content

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

Open
Gammius wants to merge 2 commits into
mainfrom
dev
Open

Gammius wants to merge 2 commits into
mainfrom
dev

Conversation

@Gammius

@Gammius Gammius commented Apr 3, 2024

Copy link
Copy Markdown
Owner

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

Comment thread src/main/java/Main.java Outdated
Comment thread src/main/java/Products.java Outdated
Comment thread src/main/java/Calculator.java Outdated
Comment thread src/main/java/Calculator.java Outdated
Comment on lines +14 to +16
result2 = (int)Math.floor(sum / Main.quantity);
float result = sum / Main.quantity;
rub.formatRub(result2);

@IvanGusevE IvanGusevE Apr 4, 2024 •

Copy link
Copy Markdown

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 = "рубля";
}

@IvanGusevE IvanGusevE Apr 4, 2024 •

Copy link
Copy Markdown

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

Comment thread src/main/java/Main.java Outdated
@@ -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