Skip to content

первая сдача работы#108

Open
akimoxy wants to merge 2 commits intoYandex-Practicum:devfrom
akimoxy:dev
Open

первая сдача работы#108
akimoxy wants to merge 2 commits intoYandex-Practicum:devfrom
akimoxy:dev

Conversation

@akimoxy
Copy link
Copy Markdown

@akimoxy akimoxy commented Aug 5, 2023

No description provided.

Copy link
Copy Markdown

@gusar-off gusar-off left a comment

Choose a reason for hiding this comment

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

Есть еще замечания по код стилям, в Android студии можно сделать авто форматирование нажав ПКМ по нужному классу и выбрав Reformat code, или нажать сочетание клавиш из соответствующего пункта в меню.

@@ -0,0 +1,108 @@
package org.example;
import java.util.Scanner;
class Product
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Весь код написан в рамках одного файла, лучше разнести классы по разным файлам

public static float allPrice ;
public static float pricePerPerson ;
public String rub;
String ololo(float rubleInc)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Лучше давать более осмысленные названия для методов, этот можно было бы назвать "calculateEnding" или что-то в таком духе

String ololo(float rubleInc)
{
int ruble = (int) Math.floor(rubleInc) ;
if (ruble >= 5 && ruble <= 20)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️Немного некорректно рассчитывается окончание. Получается если цена будет 114 рублей, метод вернет рубля. Правильный алгоритм звучит так - Проверить лежит ли остаток от деления на 100 в интервале от 11 до 14 включительно, если да, то возвращаем рублей, если нет, то берем остаток от деления на 10 и проверяем - если 1, то рубль, 2-4 то рубля, в остальных случаях - рублей. То есть нужно во-первых проверять именно остаток от деления, во-вторых учесть, что числа заканчивающиеся на 11-12-13-14 и заканчивающиеся на 1-2-3-4, будут иметь разные окончания

default:rub="рублей";
break;
}
return rub;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Возвращаемое значение не используется. Нужно либо возвращать слово рубль с правильным окончание и снаружи им пользоваться, либо не возвращать ничего, но присваивать в поле rub корректное слово. Первый вариант кажется более логичным

{
Scanner scanner = new Scanner(System.in);
System.out.println("На скольких человек необходимо разделить счёт ?");
int people = scanner.nextInt();
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Если передать в этот момент произвольную строку программа завершит работу с исключением. Перед тем, как прочитать инт из сканнера, нужно сначала проверить возможно ли это при помощи соответствующего метода hasNextInt

public static float allPrice ;
public static float pricePerPerson ;
public String rub="";
// public int people;
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