当前位置: 首页 > 知识库问答 >
问题:

尝试在while循环重复时保持新的期末余额

汲昊空
2023-03-14

我必须创建一个游戏,提示用户投入一个起始余额,然后下赌注。然后他们的输赢和他们的余额相应地增加或减少。我的问题是,我不知道如果玩家想重新玩,在while循环中重新开始之前,如何让程序记住最后的平衡。当提示用户时,我的余额将保持为最初输入的第一个余额。如果这是一个重复,我很抱歉,但我找不到这样的问题,我已经搜索了一个多小时。提前道谢。

import static java.lang.Math.*;
import java.util.Scanner;
public class BetGame
{
    public static void main(String [] args)
    {
        Scanner in = new Scanner(System.in);

        int die1, die2;

        boolean looping = true;

        System.out.println("Please enter your starting balance in whole dollars:");          
        double balance = in.nextDouble();
        System.out.println("Your beginning balance is " + balance + ", good luck!!");
        int guess = 0;
        double bet2 = 0;
        double endingBalance = 0;
        while(looping) {
            while (guess < 3) {//to allow the user to do this only 3 times    
                System.out.println("Enter a valid bet:");
                double bet = in.nextDouble();
                if (bet >= balance || bet >= endingBalance){
                    System.out.println("That is more than your balance.");
                } 
                else if (bet < balance || bet < endingBalance) {                
                    bet2 = 0 + bet;
                    break;
                }
                guess++;
                if (guess == 3) {
                    looping = false;
                    System.out.println("You have entered three invalid bets in a row. Please leave the casino.");  
                }
            }           

            die1 = RollDie();
            die2 = RollDie();
            int sum = die1 + die2;

            if (2 <= sum && sum <= 6) {                
                System.out.println("The roll is " + die1 + " and " + die2 + " for a " + sum + " for a win!");
                endingBalance = balance + bet2;
            }
            else if (7 <= sum && sum <= 12) {
                System.out.println("The roll is " + die1 + " and " + die2 + " for a " + sum + " for a lose!");
                endingBalance = balance - bet2;
            }
            System.out.println("Your balance is " + endingBalance);
            System.out.println("Do you want to roll again?");
            String answer = in.next();
            if ((answer.equals("n")) || (answer.equals("N"))) {
                looping = false;
            }
        }
        System.out.println("Your balance is " + endingBalance + ". Better luck next time! Have a wonderful evening!");
    }            

    static int RollDie()
    {
        int min = 1;
        int max = 6;

        return myRandomInteger(min, max);
    }

    static int myRandomInteger(int min, int max)
    {
        double range = max - min + 1.0;
        int randomNum = (int)(range * Math.random()) + min;

        return randomNum;
    }

}

共有2个答案

凌钊
2023-03-14

看一下这部分代码:

if (bet >= balance || bet >= endingBalance){
                System.out.println("That is more than your balance.");
} 

bet将始终大于EndingBalance,因为EndingBalance为0。

施赞
2023-03-14

您可以将余额存储在变量中

    double balance = in.nextDouble();
    double originalBalance = balance;
 类似资料:
  • 问题内容: 下面的代码询问用户他/她想要多少个赛车手。 如果在代码中输入数字,则代码会跳出循环,并且程序的其余部分可以正常运行;但是,当我输入诸如“ awredsf”之类的内容时,它应该捕获该异常,并且确实如此。它没有连续提示用户,而是连续循环,这对我来说没有意义。 连续循环时,程序打印如下: 多少赛车手应该参加比赛?多少赛车手应该参加比赛?多少赛车手应该参加比赛?多少赛车手应该参加比赛?多少赛车

  • while循环开始之前的语句没有打印,并且从1开始没有打印循环中的值。相反,它从一个随机的大int开始打印。

  • 我目前正在学习UdemyJava课程,并正在练习我迄今为止学到的东西。 我有以下简单的程序,我计划使用它来让用户输入他的名字。 我想让程序在用户输入空白名称时重复错误消息,而不是从头开始重新启动整个程序。 例如,当用户输入一个空白的名字时,我希望程序继续重复“请输入至少1个字符的名字”,当用户输入一个空白的姓氏时,程序继续重复“请输入至少1个字符的姓氏”,直到用户输入一个有效的名字。 然而,当前当

  • 我正在编写一个 Java 程序。它应该打印出年终账户余额,今年投资,年度回报和年度数量。前任: 第一年-投资10000美元,投资额为10%,最终投资额为11000美元第二年-在现有11000美元的基础上再投资10000美元,现在你有21000美元,年回报率为2100美元,最终投资额为23100美元,持续投资6年。 我的代码打印了所有6年,但与第一年的值相同。循环有什么问题吗?非常感谢。这里我的代码

  • 在js中,当在forEach函数中遍历arrayitems时,我遇到了一个问题。我只是有一个ID数组,其中一些ID不到10个字符,我想在开头用“0”填充这些字符。示例:在这种情况下,我想用填充最后一项。当然,它也可以在各种其他方式,但我只是不明白为什么它不起作用。 下面是我的代码:

  • 我正在做一个双人骰子游戏,有五轮,但是我想保持前几轮的分数不变,我该怎么做? 游戏规则如下: 每个玩家骰子上滚动的分数会加到他们的分数上。如果总数是偶数,他们的分数会增加10分。如果总数是奇数,他们的分数会减去5分。如果他们掷出双倍,他们会多掷一个骰子,并将滚动的分数加到他们的分数上。玩家的分数在任何时候都不能低于0。在5轮结束时得分最高的人获胜。如果两个玩家在5轮结束时得分相同,他们每人投1个死