首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >循环一个"If Else语句“java

循环一个"If Else语句“java
EN

Stack Overflow用户
提问于 2016-10-08 22:25:01
回答 4查看 276关注 0票数 1

我试图使用Scanner在java中制作一个简单的程序,允许用户射击骰子(玩骰子)。

1.这段代码要求用户输入他们有多少钱。

  1. 代码将要求用户输入一个打赌。
  2. 使用随机数生成器,它将通知用户他们滚动了什么,并通知用户他们赢了/输了多少钱。

我已经成功地告诉计算机,当他们赢或输,当他们滚动2,3,7,11或12时,通知他们。

我不知道当其他随机值(如4、5、6、8、9和10 )被滚动时,如何告诉计算机允许用户继续滚动骰子,请帮助。这是我的密码:

代码语言:javascript
运行
复制
System.out.println("How much is in your purse?: ");
purse = input.nextInt();

System.out.println("make a bet: ");
bet = input.nextInt();

int pNumber = rand.nextInt(12) + 1;

if (pNumber == 2 || pNumber == 3 || pNumber == 12)
{
    purse = purse - bet;
    System.out.println("you rolled a " + pNumber);
    System.out.println("you lost $" + bet);
}
else if (pNumber == 7 || pNumber == 11)
{
    purse = purse + bet;
    System.out.println("you rolled a " + pNumber);
    System.out.println("you won $" + bet );
}
else
{
    System.out.println("you rolled a " + pNumber + ",keep rolling" );
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-10-08 22:41:47

使用一个外部的时间循环,以保持游戏的运行,直到用户用完钱。

就像这样。从钱包中的初始数量开始,然后开始游戏。

如果用户赢或输,他们做一个新的赌注,并再次滚动。

如果用户既不赢也不输,他们就会再次使用当前的赌注。

代码语言:javascript
运行
复制
System.out.println("How much is in your purse?: ");


   purse = input.nextInt();
   boolean newBet = true;

    while(purse > 0)
    {
     if(newBet)
     {
      System.out.println("make a bet: ");
      bet = input.nextInt();
     }

     //roll the dice, new bet or not
     int pNumber = rand.nextInt(12) + 1;

     if ( pNumber == 2 || pNumber == 3 || pNumber == 12)
     {
            purse = purse - bet;
            System.out.println("you rolled a " + pNumber);
            System.out.println("you lost $" + bet);
            newBet =true; //make a new bet if you won
     }
     else if (pNumber == 7 || pNumber == 11)
     {
            purse = purse + bet;
            System.out.println("you rolled a " + pNumber);
            System.out.println("you won $" + bet );
            newBet=true; //make a new bet if you lost
     }
     else
     {
       System.out.println("you rolled a " + pNumber + ",keep rolling" );
       newBet=false; // make no new bet, neither won nor lost

     }
   } //end while


  System.out.println("Game over !")

如果用户希望在资金用完之前退出,您可以添加条件以脱离while循环,等等。

票数 1
EN

Stack Overflow用户

发布于 2016-10-08 22:45:46

键,如果你想继续滚动特定的数字,把你所有的代码放在一个时间循环或做同时循环。

票数 0
EN

Stack Overflow用户

发布于 2016-10-08 22:54:31

下面是一个简单的简单算法,可以帮助描绘实际代码:

在一种方法中,调用它,使用随机数生成器来模拟用户的滚动

如果用户的名册不等于4,5,6,8,9或10,根据您的解释,这是有问题的数字,请继续计算

否则,如果用户确实注册了一个错误的号码,则对roll方法进行递归调用。这将生成另一个随机滚动,并再次通过检查,直到生成“可接受的”卷。

还不确定是否知道递归,但基本上,它是一个调用自己的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39937994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档