Skip to content

Проектная работа №1.#1

Open
Myachkaa wants to merge 1 commit intomainfrom
dev
Open

Проектная работа №1.#1
Myachkaa wants to merge 1 commit intomainfrom
dev

Conversation

@Myachkaa
Copy link
Copy Markdown
Owner

Проектная работа №1.

import java.io.InputStreamReader;
public class Calculate {
Scanner scanner = new Scanner(System.in);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

В целом для этой работы хватило бы просто сканнера https://www.baeldung.com/bufferedreader-vs-console-vs-scanner-in-java

public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
public static void main(String[] args) throws IOException {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Этот метод получился достаточно большим и нагруженным, было бы здорово разбить на несколько методов, например, вынести обработку рубля в отдельный метод

Comment on lines +24 to +32
if ((int) (i) == 1) {
System.out.println(" рублей.");
} else if (k == 1) {
System.out.println(" рубль.");
} else if (k == 2 | k == 3 | k == 4) {
System.out.println(" рубля.");
} else {
System.out.println(" рублей.");
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Здесь и с 36 по 44 строку код идентичен, в таких случаях точно выносят его в отдельный метод и вызывают повторно в требуемых местах

System.out.print("Добавленные товары:" + calculate.productInfo + "\nОбщая сумма чека: " + sum);
double i = Math.floor(calculate.productSum) % 100 / 10;
int k = (int) (calculate.productSum) % 10;
if ((int) (i) == 1) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

В таких случаях возможно использование конструкции switch - case, https://javarush.com/groups/posts/operator-switch-v-java

String sum = String.format("%.2f", calculate.productSum);
System.out.print("Добавленные товары:" + calculate.productInfo + "\nОбщая сумма чека: " + sum);
double i = Math.floor(calculate.productSum) % 100 / 10;
int k = (int) (calculate.productSum) % 10;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Идеально давать переменным говорящие названия, чтобы без контекста можно было разобраться в коде. Очень полезно, когда в команде несколько человек, или код долго будет долго поддерживаться. Очень здорово привыкать к таким практикам с самого начала обучения

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