Java 代码的基本循环问题 - 如何允许玩家在终端中多次赌博?

Basic Loop Issue with Java Code - How do I allow a player to gamble multiple times in the terminal?

提问人:Brock Benton 提问时间:5/23/2023 最后编辑:AbraBrock Benton 更新时间:5/24/2023 访问量:60

问:

我一两周前刚开始学习 Java,我想在终端中创建一个愚蠢的小赌博软件;但是,即使我希望他们能够多次赌博,玩家也只能赌博一次。

法典:

import java.util.Random;
import java.util.Scanner;

public class Gambler {

    public static void main(String[] args) {
        Random random = new Random();
        Scanner scanner = new Scanner(System.in);
        int balance = 100;
        System.out.println();
        System.out.println("--> Current Balance: $" + balance + " <--");
        System.out.println();
        System.out.println("Would you like to enter the Java Gambler simulator?");
        System.out.println();
        System.out.println("[Yes] [No]");
        System.out.println();
        String yesOrNo;
        yesOrNo = scanner.nextLine();
        if (yesOrNo.equalsIgnoreCase("Yes")) {
            System.out.println();
            System.out.println("[!] Welcome to the Java Gambler! [!]");
            System.out.println();
            System.out.println("The only Java gambling software in all of Java County!");
            System.out.println();
            System.out.println("If the chosen number is {1}, the player automatically wins $20.");
            System.out.println("If the chosen number is {2}, the player automatically wins $10.");
            System.out.println("If the chosen number is {3}, the player automatically wins $5.");
            System.out.println("All other numbers are an automatic loss.");
            System.out.println();
            System.out.println("Continue?");
            System.out.println();
            System.out.println("[Yes] [No]");
            System.out.println();
            String yesOrNo2;
            yesOrNo2 = scanner.nextLine();
            if (yesOrNo2.equalsIgnoreCase("Yes")) {
                System.out.println();
                System.out.println("Gambling Options:");
                System.out.println();
                System.out.println("[A] $1 Bet (1/20 $20, 1/20 $10, 1/20 $5)");
                System.out.println("[B] $5 Bet (1/10 $20, 1/10 $10, 1/10 $5)");
                System.out.println("[C] $10 Bet (1/5 $20, 1/5 $10, 1/5 $5)");
                System.out.println();
                System.out.println("Gambling Selection: ");
                System.out.println();
                String continueGambling = "Yes";
                while (continueGambling.equalsIgnoreCase("Yes")) {
                    String gamblingSelection;
                    gamblingSelection = scanner.nextLine();
                    String a = "A";
                    String b = "B";
                    String c = "C";
                    if (gamblingSelection.equalsIgnoreCase(a)) {
                        balance = balance - 1;
                        int aSelection = random.nextInt(20) + 1;
                        System.out.println();
                        System.out.println("And the number is... " + aSelection);
                        System.out.println();
                        switch (aSelection) {
                            case 1:
                                System.out.println("Congrats, you have won $20!");
                                balance = balance + 20;
                                System.out.println("--> Your new balance: $" + balance + " <--");
                                System.out.println();
                                System.out.println("Continue?");
                                System.out.println();
                                System.out.println("[Yes] [No]");
                                System.out.println();
                                break;
                            case 2:
                                System.out.println("Congrats, you have won $10!");
                                balance = balance + 10;
                                System.out.println("--> Your new balance: $" + balance + " <--");
                                System.out.println();
                                System.out.println("Continue?");
                                System.out.println();
                                System.out.println("[Yes] [No]");
                                System.out.println();
                                break;
                            case 3:
                                System.out.println("Congrats, you have won $5!");
                                balance = balance + 5;
                                System.out.println("--> Your new balance: $" + balance + " <--");
                                System.out.println();
                                System.out.println("Continue?");
                                System.out.println();
                                System.out.println("[Yes] [No]");
                                System.out.println();
                                break;
                            default:
                                System.out.println("Sorry, no luck this time...");
                                System.out.println("--> Your new balance: $" + balance + " <--");
                                System.out.println();
                                System.out.println("Continue?");
                                System.out.println();
                                System.out.println("[Yes] [No]");
                                System.out.println();
                                break;
                        }
                    }
                    else if (gamblingSelection.equalsIgnoreCase(b)) {
                        balance = balance - 5;
                        int bSelection = random.nextInt(10) + 1;
                        System.out.println();
                        System.out.println("And the number is... " + bSelection);
                        System.out.println();
                        switch (bSelection) {
                            case 1:
                                System.out.println("Congrats, you have won $20!");
                                balance = balance + 20;
                                System.out.println("--> Your new balance: $" + balance + " <--");
                                System.out.println();
                                System.out.println("Continue?");
                                System.out.println();
                                System.out.println("[Yes] [No]");
                                System.out.println();
                                break;
                            case 2:
                                System.out.println("Congrats, you have won $10!");
                                balance = balance + 10;
                                System.out.println("--> Your new balance: $" + balance + " <--");
                                System.out.println();
                                System.out.println("Continue?");
                                System.out.println();
                                System.out.println("[Yes] [No]");
                                System.out.println();
                                break;
                            case 3:
                                System.out.println("You won $5! Its a free spin, I guess...");
                                balance = balance + 5;
                                System.out.println("--> Your new balance: $" + balance + " <--");
                                System.out.println();
                                System.out.println("Continue?");
                                System.out.println();
                                System.out.println("[Yes] [No]");
                                System.out.println();
                                break;
                            default:
                                System.out.println("Sorry, no luck this time...");
                                System.out.println("--> Your new balance: $" + balance + " <--");
                                System.out.println();
                                System.out.println("Continue?");
                                System.out.println();
                                System.out.println("[Yes] [No]");
                                System.out.println();
                                break;
                        }
                    }
                    else if (gamblingSelection.equalsIgnoreCase(c)) {
                        balance = balance - 10;
                        int cSelection = random.nextInt(5) + 1;
                        System.out.println();
                        System.out.println("And the number is... " + cSelection);
                        System.out.println();
                        switch (cSelection) {
                            case 1:
                                System.out.println("Congrats, you have won $20!");
                                balance = balance + 20;
                                System.out.println("--> Your new balance: $" + balance + " <--");
                                System.out.println();
                                System.out.println("Continue?");
                                System.out.println();
                                System.out.println("[Yes] [No]");
                                System.out.println();
                                break;
                            case 2:
                                System.out.println("You won $10! Its a free spin, I guess...");
                                balance = balance + 10;
                                System.out.println("--> Your new balance: $" + balance + " <--");
                                System.out.println();
                                System.out.println("Continue?");
                                System.out.println();
                                System.out.println("[Yes] [No]");
                                System.out.println();
                                break;
                            case 3:
                                System.out.println("You won $5! At least its somethin...");
                                balance = balance + 5;
                                System.out.println("--> Your new balance: $" + balance + " <--");
                                System.out.println();
                                System.out.println("Continue?");
                                System.out.println();
                                System.out.println("[Yes] [No]");
                                System.out.println();
                                break;
                            default:
                                System.out.println("Sorry, no luck this time...");
                                System.out.println("--> Your new balance: $" + balance + " <--");
                                System.out.println();
                                System.out.println("Continue?");
                                System.out.println();
                                System.out.println("[Yes] [No]");
                                System.out.println();
                                break;
                        }
                    }
                }
                continueGambling = scanner.nextLine();
            }
            else {
                String wrongValue = "Invalid response. Please try again.";
                System.out.println(wrongValue);
            }
        }
        else if (yesOrNo.equalsIgnoreCase("No")) {
            System.out.println("You sure are missing out...");
        }
        else {
            System.out.println("Invalid response. Please try again.");
        }
        scanner.close();
    }
}

以下是 GitHub 上完整代码的链接: https://github.com/OkBrock/Gambler

我做了一个循环并制作了一个扫描仪,但每次我输入“是”时,什么也没发生。

摘要:
我需要玩家有能力用单一余额进行多次赌博。 我已经用扫描仪做了一个循环,但什么也没发生。检查代码以查看。

Java 循环 终端 java.util.scanner

评论

0赞 Mike 'Pomax' Kamermans 5/24/2023
你了解循环了吗?如果没有:当你接触到这些时,你会学到这一点。如果你有,问问自己,如果你,人类,和另一个人一起玩这个游戏,你的重复与停止状态会是什么。while
0赞 Abra 5/24/2023
每个程序员都需要知道如何调试代码 - 包括他自己的代码和其他人的代码。代码的这一行位于循环之外:whilecontinueGambling = scanner.nextLine();
0赞 Brock Benton 5/24/2023
@Abra 我已经移动了语句 continueGambling = scanner.nextLine();周围什么也没发生
0赞 Abra 5/24/2023
什么都不发生意味着你处于一个无限循环中。我再说一遍,你需要学习如何调试你的代码。如果您使用的是 IDE,那么它应该有一个调试器。我建议你学习如何使用它。
0赞 Brock Benton 5/24/2023
@Abra 好吧,我的错

答: 暂无答案