我剛開始使用比主要方法更復雜的方法進行編碼。我被賦予了一個用三個硬幣進行比賽的任務。無論哪個投幣順序先擲出2個頭和2個尾巴。我編寫了一個if else語句來確定哪個硬幣獲勝,但是這兩個if語句都沒有執行過。如果您在我的if else語句或其他地方發現錯誤,請告訴我。我還需要其他包含其他方法的代碼程序。如何在Java中連續獲取兩個頭和兩個尾部進行投幣競賽比賽
public class FlipRace
{
public static void main (String[] args)
{
final int GOALHEAD = 2;
final int GOALTAIL = 2;
int count1 = 0, count2 = 0, count3 = 0, count10 = 0, count20 = 0, count30 = 0;
// Create three separate coin objects
Coin coin1 = new Coin();
Coin coin2 = new Coin();
Coin coin3 = new Coin();
while (count1 <= GOALHEAD && count10 <= GOALTAIL || count2 <= GOALHEAD && count20 <= GOALTAIL || count3 <= GOALHEAD && count30 <= GOALTAIL)
{
coin1.flip();
coin2.flip();
coin3.flip();
// Print the flip results (uses Coin's toString method)
System.out.print ("Coin 1: " + coin1);
System.out.println (" Coin 2: " + coin2);
System.out.println (" Coin 3: " + coin3);
// Increment or reset the counters
if (coin1.isHeads())
count1++;
else
count10++;
if (coin2.isHeads())
count2++;
else
count20++;
if (coin3.isHeads())
count3++;
else
count30++;
}
// Determine the winner
if (count1 == GOALHEAD && count10 == GOALTAIL)
System.out.println ("Coin 1 wins!");
else if (count2 == GOALHEAD && count20 == GOALTAIL)
System.out.println ("Coin 2 wins!");
else if (count3 == GOALHEAD && count30 == GOALTAIL)
System.out.println ("Coin 3 wins!");
else
System.out.println ("It's a TIE!");
}
}
這裏是我的輸出:
Coin 1: Heads Coin 2: Heads
Coin 3: Tails
Coin 1: Heads Coin 2: Heads
Coin 3: Heads
Coin 1: Heads Coin 2: Tails
Coin 3: Heads
Coin 1: Heads Coin 2: Heads
Coin 3: Tails
Coin 1: Heads Coin 2: Tails
Coin 3: Heads
It's a TIE!// this message comes up every time because something is wrong
我認爲你的循環應該檢查'<'而不是'<='。 – shmosel
當使用<而不是<=時,只有一半的目標有效。 2個尾巴或者2個頭部都可以贏得硬幣,但是我想要一枚硬幣來獲得勝利,因爲它有2個頭部和2個尾部。感謝您的幫助,它幫助我弄清楚了事情。 – Nub
那麼'while((count1
shmosel