[英]Looping an “If Else Statement” java
我正在嘗試使用Scanner在Java中制作一個簡單的程序,該程序將允許用戶射擊胡扯(玩骰子)。
1.此代碼要求用戶輸入他們有多少錢。
該代碼將要求用戶輸入一個賭注。
使用隨機數生成器,它將通知用戶他們滾了什么,並通知用戶他們贏了/虧了多少錢。
我已經能夠成功地告訴計算機,當他們贏了或輸了,何時擲出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.