Repository navigation
Conversation
| Prod p = new Prod(); | ||
| String menu = ""; | ||
| double summa; | ||
| boolean a1;//вспомогательная переменная для проверки |
There was a problem hiding this comment.
🍏 В ней нет смысла, так как после break программа выйдет из цикла
| if (n==1) { | ||
| System.out.println("Ошибка, Вы ввели 1"); | ||
| } else { | ||
| if (n<1) { |
There was a problem hiding this comment.
🍏 При n = 0 выведется сообщение Вы ввели отрицательное число!, хотя 0 таковым не является
| } | ||
| } | ||
|
|
||
| while (a1) { |
There was a problem hiding this comment.
🍏while (true) будет работать также
| Scanner input = new Scanner(System.in); | ||
| summa = 0; | ||
| a1 = true; | ||
| int n = 0; |
There was a problem hiding this comment.
🍏 Советую привыкать называть переменные осмысленно и полными английскими словами, например numberOfPeople. В будущем это позволит писать понятный и чистый код. Сейчас же стороннему человеку сразу не будет понятно, что это за переменная и за что она отвечает.
| 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; | ||
| } | ||
| } | ||
| } |
There was a problem hiding this comment.
🍏 Это всё необходимо вынести в отдельную функцию.
| import java.util.Scanner; | ||
| public class Main | ||
| { | ||
| public static void main(String[] args) throws Exception{ |
| 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("Хотите ли добавить еще один товар?"); | ||
| } |
There was a problem hiding this comment.
🍏 Это тоже лучше вынести в отдельную функцию
| 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(" рублей"); | ||
| } | ||
| } |
There was a problem hiding this comment.
🍏 Это тоже лучше вынести в отдельную функцию
| 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(" рублей"); | ||
| } |
There was a problem hiding this comment.
🍏x, y стоит переименовать на осмысленные названия, а вместо кучи if/else советую здесь попробовать использовать switch
| } | ||
|
|
||
| } | ||
| class Prod { |
There was a problem hiding this comment.
Product, во-вторых, проинициализировать поля в конструкторе, в-третьих необходимо создать список классов продуктов, в котором во время ввода пользователем продуктов и их цен будут накапливаться эти продукты. После, когда пользователь введёт "Завершить", необходимо будет пройтись по этому списку, посчитать по полю price общую цену, а с помощью поля name выводить названия продуктов. Также каждый класс лучше создавать в отельном файле.
There was a problem hiding this comment.
Привет, Вагиз! Спасибо за замечание! Постараюсь исправить. Самостоятельно изучила обработку ошибок в Java, try-catch. Рекомендацию про организацию списков классов выполнить не могу, так как в теоретической части на это не было ни материалов, ни примеров. Если возможно, пришли пример организации списков классов.
| menu.add(nameb); | ||
| return (menu); | ||
| } | ||
| public static Double calculator(Double summa1){ |
There was a problem hiding this comment.
🍏Старайся оставлять пустую строку между методами класса
| } | ||
| public static Double calculator(Double summa1){ | ||
|
|
||
| summa = summa + summa1; |
There was a problem hiding this comment.
🍏 Лучше не использовать числа в названии переменных. Здесь можно summa назвать, например, totalSum, а summa1 - newSum, также можно использовать оператор +=
| import java.util.Scanner; | ||
|
|
||
| public class Input { | ||
|
|
| System.out.println("Вы ввели отрицательное число!"); | ||
| } else { | ||
| if (n == 0) { | ||
| System.out.println("Ошибка, Вы ввели 0"); |
There was a problem hiding this comment.
🍏Код никогда не попадёт сюда, до этого условие n<1, а 0 как раз меньше 1, значит в else со значением 0 он никогда не попадёт
|
|
||
|
|
||
|
|
||
| public static String name() { |
There was a problem hiding this comment.
🍏 Следует следить за форматированием кода, это можно делать автоматически, прожимая 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/
| //import java.util.Scanner; | ||
|
|
||
| import java.util.ArrayList; | ||
| //import java.util.Collections; |
There was a problem hiding this comment.
🍏Стоит удалить комментарии с ненужным кодом здесь и в других местах кода
No description provided.