簡體   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