Skip to content

Калькулятор - #1

Open
dekat333 wants to merge 2 commits into
mainfrom
dev
Open

dekat333 wants to merge 2 commits into
mainfrom
dev

Conversation

@dekat333

@dekat333 dekat333 commented Sep 4, 2023

Copy link
Copy Markdown
Owner

No description provided.

Comment thread src/main/java/Main.java Outdated
Prod p = new Prod();
String menu = "";
double summa;
boolean a1;//вспомогательная переменная для проверки

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🍏 В ней нет смысла, так как после break программа выйдет из цикла

Comment thread src/main/java/Main.java Outdated
if (n==1) {
System.out.println("Ошибка, Вы ввели 1");
} else {
if (n<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.

🍏 При n = 0 выведется сообщение Вы ввели отрицательное число!, хотя 0 таковым не является

Comment thread src/main/java/Main.java Outdated
}
}

while (a1) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🍏while (true) будет работать также

Comment thread src/main/java/Main.java Outdated
Scanner input = new Scanner(System.in);
summa = 0;
a1 = true;
int n = 0;

@nasibullin1412 nasibullin1412 Sep 5, 2023 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🍏 Советую привыкать называть переменные осмысленно и полными английскими словами, например numberOfPeople. В будущем это позволит писать понятный и чистый код. Сейчас же стороннему человеку сразу не будет понятно, что это за переменная и за что она отвечает.

Comment thread src/main/java/Main.java Outdated
Comment on lines +16 to +31
while (true) { // Запускаем бесконечный цикл
System.out.println("На скольких человек необходимо разделить счет?");
n = input.nextInt(); // Получаем количество человек

if (n==1) {
System.out.println("Ошибка, Вы ввели 1");
} else {
if (n<1) {
System.out.println("Вы ввели отрицательное число!");
}
else {
System.out.println("Спасибо!");
break;
}
}
}

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 thread src/main/java/Main.java Outdated
import java.util.Scanner;
public class Main
{
public static void main(String[] args) throws Exception{

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🍏 throws Exception тут лишний

Comment thread src/main/java/Main.java Outdated
Comment on lines +33 to +48
while (a1) {
System.out.println("Введите название блюда и нажмите Enter. Если ввод закончен, введите \"Завершить\"");
p.name = input.next();
//System.out.println(p.name);
if (p.name.equalsIgnoreCase("Завершить")) {
a1=false;
break;
}
System.out.println("Введите цену блюда");
p.price = input.nextDouble ();
menu = menu + "\n" + p.name;
summa = summa + p.price;
System.out.println("Товар добавлен");
// p.name = "";
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.

🍏 Это тоже лучше вынести в отдельную функцию

Comment thread src/main/java/Main.java Outdated
Comment on lines +49 to +64
System.out.print("Добавленные товары: ");
System.out.println(menu);
summa = summa/n;
System.out.print("Необходимо оплатить: ");
int x = (int) summa%100/10;
int y = (int) summa%10;
System.out.printf("%.2f",summa);
if (summa == 1||(y==1 && x!=1)){
System.out.print(" рубль");
}else{
if ((y==2||y==3||y==4)&&x!=1){
System.out.print(" рубля");
}else{
System.out.print(" рублей");
}
}

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 thread src/main/java/Main.java Outdated
Comment on lines +53 to +63
int x = (int) summa%100/10;
int y = (int) summa%10;
System.out.printf("%.2f",summa);
if (summa == 1||(y==1 && x!=1)){
System.out.print(" рубль");
}else{
if ((y==2||y==3||y==4)&&x!=1){
System.out.print(" рубля");
}else{
System.out.print(" рублей");
}

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, y стоит переименовать на осмысленные названия, а вместо кучи if/else советую здесь попробовать использовать switch

Comment thread src/main/java/Main.java
}

}
class Prod {

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, во-вторых, проинициализировать поля в конструкторе, в-третьих необходимо создать список классов продуктов, в котором во время ввода пользователем продуктов и их цен будут накапливаться эти продукты. После, когда пользователь введёт "Завершить", необходимо будет пройтись по этому списку, посчитать по полю price общую цену, а с помощью поля name выводить названия продуктов. Также каждый класс лучше создавать в отельном файле.

@dekat333 dekat333 Sep 7, 2023 •

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Привет, Вагиз! Спасибо за замечание! Постараюсь исправить. Самостоятельно изучила обработку ошибок в Java, try-catch. Рекомендацию про организацию списков классов выполнить не могу, так как в теоретической части на это не было ни материалов, ни примеров. Если возможно, пришли пример организации списков классов.

Comment thread src/main/java/Calc.java
menu.add(nameb);
return (menu);
}
public static Double calculator(Double summa1){

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 thread src/main/java/Calc.java
}
public static Double calculator(Double summa1){

summa = summa + summa1;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🍏 Лучше не использовать числа в названии переменных. Здесь можно summa назвать, например, totalSum, а summa1 - newSum, также можно использовать оператор +=

Comment thread src/main/java/Input.java
import java.util.Scanner;

public class Input {

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 thread src/main/java/Input.java
System.out.println("Вы ввели отрицательное число!");
} else {
if (n == 0) {
System.out.println("Ошибка, Вы ввели 0");

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🍏Код никогда не попадёт сюда, до этого условие n<1, а 0 как раз меньше 1, значит в else со значением 0 он никогда не попадёт

Comment thread src/main/java/Input.java



public static String name() {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🍏 Следует следить за форматированием кода, это можно делать автоматически, прожимая ctrl+alt+l https://devcolibri.com/%D0%B3%D0%BE%D1%80%D1%8F%D1%87%D0%B8%D0%B5-%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D1%88%D0%B8-intellij-idea/

Comment thread src/main/java/Main.java
//import java.util.Scanner;

import java.util.ArrayList;
//import java.util.Collections;

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