Пока l oop не повторяется в Java - PullRequest
1 голос
/ 06 мая 2020
import java.util.*;

public class Test
{
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        Random rand = new Random();

        System.out.print("Want to play? ('Y' or 'N'): ");
        String want = input.nextLine();

        double money;
        String word1 = "", word2 = "", word3 = "";
        int randInt1, randInt2, randInt3;

        double totalMoney = 0.0, totalEarnings = 0.0;

        do
        {
            System.out.print("How much money do you want to enter? $");
            money = input.nextDouble();
            totalMoney += money;

            randInt1 = rand.nextInt(6);

            if (randInt1 == 0)
            {
                word1 = "Cherries";
            }
            else if (randInt1 == 1)
            {
                word1 = "Oranges";
            }
            else if (randInt1 == 2)
            {
                word1 = "Plums";
            }
            else if (randInt1 == 3)
            {
                word1 = "Bells";
            }
            else if (randInt1 == 4)
            {
                word1 = "Melons";
            }
            else
            {
                word1 = "Bars";
            }

            randInt2 = rand.nextInt(6);

            if (randInt2 == 0)
            {
                word2 = "Cherries";
            }
            else if (randInt2 == 1)
            {
                word2 = "Oranges";
            }
            else if (randInt2 == 2)
            {
                word2 = "Plums";
            }
            else if (randInt2 == 3)
            {
                word2 = "Bells";
            }
            else if (randInt2 == 4)
            {
                word2 = "Melons";
            }
            else
            {
                word2 = "Bars";
            }

            randInt3 = rand.nextInt(6);

            if (randInt3 == 0)
            {
                word3 = "Cherries";
            }
            else if (randInt3 == 1)
            {
                word3 = "Oranges";
            }
            else if (randInt3 == 2)
            {
                word3 = "Plums";
            }
            else if (randInt3 == 3)
            {
                word3 = "Bells";
            }
            else if (randInt3 == 4)
            {
                word3 = "Melons";
            }
            else
            {
                word3 = "Bars";
            }

            System.out.println(word1 + "  " + word2 + "  " + word3);

            if (word1.equals(word2) && word1.equals(word3))
            {
                System.out.printf("You won $%.2f\n", (money * 3));
                totalEarnings += (money * 3);
            }
            else if ((word1.equals(word2) && !word1.equals(word3)) || (!word1.equals(word2) && word1.equals(word3)))
            {
                System.out.printf("You won $%.2f\n", (money * 2));
                totalEarnings += (money * 2);
            }
            else if ((word2.equals(word1) && !word2.equals(word3)) || (!word2.equals(word1) && word2.equals(word3)))
            {
                System.out.printf("You won $%.2f\n", (money * 2));
                totalEarnings += (money * 2);
            }
            else if ((word2.equals(word1) && !word2.equals(word3)) || (!word2.equals(word1) && word2.equals(word3)))
            {
                System.out.printf("You won $%.2f\n", (money * 2));
                totalEarnings += (money * 2);
            }
            else
            {
                System.out.println("You won $0");
            }

            System.out.print("\nWant to play again? ('Y' or 'N'): ");
            want = input.nextLine();
        }
        while (want.equalsIgnoreCase("Y"));

        System.out.printf("\n\nYou entered a total of $%.2f into the slot machine.\n", totalMoney);
        System.out.printf("Your total earnings are $%.2f", totalEarnings);
    }
}

У меня проблемы с попыткой получить это, пока я oop повторяю. Я включил контрольное значение пользовательского ввода «Y» или «N» («N» для остановки). В то время как l oop, он просит пользователя снова ввести дозорного. Но эта часть не выполняется, когда я запускаю программу.

В консоли отображаются последние строки:

Хотите сыграть снова? ('Y' или 'N'):

Вы ввели в игровой автомат всего 15,00 долларов.

Ваш общий заработок составляет 0,00 долларов

Итак, последний ввод для " Y "или" N "не выполняется.

1 Ответ

1 голос
/ 06 мая 2020

Вы не используете «Enter» со своим кодом

    money = input.nextDouble();

Затем, когда вы перейдете к своему коду

    want = input.nextLine();

, возвращается пустая строка.

Поместите следующий код после вашего кода для input.nextDouble()

        input.nextLine();

Это займет "Enter", когда вы запросили сумму ставки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...