繁体   English   中英

循环“ If Else语句” java

[英]Looping an “If Else Statement” java

我正在尝试使用Scanner在Java中制作一个简单的程序,该程序将允许用户射击胡扯(玩骰子)。

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

  1. 该代码将要求用户输入一个赌注。

  2. 使用随机数生成器,它将通知用户他们滚了什么,并通知用户他们赢了/亏了多少钱。

我已经能够成功地告诉计算机,当他们赢了或输了,何时掷出2,3、7、11或12时,通知用户。

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

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" );
}

使用外部while循环使游戏继续进行,直到用户用完钱为止。

这样的事情。 从钱包里的初始金额开始,然后开始游戏。

如果用户获胜或失败,他们将进行新的下注并再次滚动。

如果用户既没有赢也没有输,他们只是用当前的赌注再次滚动。

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循环。

关键,如果要继续滚动特定数字,请将所​​有代码放入while循环或do-while循环中。

这是一个简单的简单算法,可能有助于描述实际代码:


在一种方法中,将其称为滚动,使用随机数生成器来模拟用户的滚动

如果用户的点数不等于4,5、6、8、9或10(根据您的解释是有问题的数字),请继续进行计算

否则,如果用户实际上确实滚动了一个错误的数字,请对roll方法进行递归调用。 这将生成另一个随机滚动,并再次进行检查,直到生成“可接受的”滚动


不确定您是否知道递归,但是基本上,这是一个调用自身的方法。

boolean keep_rolling = true;

While(keep_rolling== true)
{
System.out.println("How much is in your       purse?: ");
        purse = input.nextInt();
        if(purse==0){
System.out.println("you need more money to continue ");

}else{  

        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);
keep_rolling= false;
        }
                    else if (pNumber == 7 || pNumber == 11)
                    {
                        purse = purse + bet;
                        System.out.println("you rolled a " + pNumber);
                        System.out.println("you won $" + bet );

        keep_rolling= false;                }
                        else
                        {

System.out.println("you rolled a " +     pNumber + ",keep rolling" );

                                        }
}//end else of purse==o
}//end while

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM