Создание списка аукционов (java) - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь создать код для аукциона, чтобы при запуске аукциона собаке присваивался номер.Первый созданный аукцион получит номер 1, следующий номер 2 и т. Д.

Проблема в том, что код аукциона не содержит список собак, участвующих в аукционе.Скорее это перечислено регистрацией.

Например: зарегистрированные собаки

  • Боуи
  • Анна
  • Майя

(Процесс аукциона))

Команда: Начать аукцион

Имя собаки: Maya

Вывод: Maya была выставлена ​​на аукцион # 2


Команда: Начать аукцион

Имя собаки: Боуи

Вывод: Боуи выставлен на аукцион № 0


Это мой код:

private void startAuction() {

    boolean current = false;

    do {
        System.out.println("Dog name: ");
        String dogName = scan.nextLine().toLowerCase().trim();

        if (dogName.isEmpty()) {
            System.out.println("Error: Name can't be empty.");
            continue;           
        }

        for (int i = 0; i < dogs.size(); i++) {
            if (dogName.equals(dogs.get(i).getName())) {
                auction.add(new Auction(dogName));

                System.out.printf(dogName + " has been put up for auction in auction #%d", i);
                System.out.println();
                current = true;
                return;
            }
        }

        if (current == false) {
            System.out.println("Error: no such dog in the register");
        }
    } while(true);

Я новичок и немного смущен.Есть идеи как это исправить?

1 Ответ

0 голосов
/ 13 февраля 2019

Проблема здесь заключается в том, что после получения имени собаки на аукционе, вы ищете эту собаку в списке, печатая индекс, где собака находится в списке.Чтобы это исправить, нужно иметь другую переменную counter, которая подсчитывает количество выставленных на аукцион собак, увеличивая каждый раз.Код будет выглядеть примерно так:

    private void startAuction() {

    boolean current = false;
    int auctionCount = 1;//Declare the current auction we are on

    do {
        System.out.println("Dog name: ");
        String dogName = scan.nextLine().toLowerCase().trim();

        if (dogName.isEmpty()) {
            System.out.println("Error: Name can't be empty.");
            continue;           
        }

        for (int i = 0; i < dogs.size(); i++) {
            if (dogName.equals(dogs.get(i).getName())) {
                auction.add(new Auction(dogName));

                //Use the auction count here so that it starts at 1 and increases 
                System.out.printf(dogName + " has been put up for auction in auction #%d", auctionCount);from there
                System.out.println();
                auctionCount++;//Make sure the next auction has a number that is one larger
                current = true;
                return;
            }
        }

        if (current == false) {
            System.out.println("Error: no such dog in the register");
        }
    } while(true);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...