簡體   English   中英

可以編譯但無法運行的Java程序

[英]Java Program that compiles but doesn't run

我無法弄清楚為什么該程序無法運行。 代碼的第一部分是我創建的類,而第二部分是使用創建的類的程序。 該程序的基本要點是擁有擲硬幣類,然后在程序中多次使用該類玩游戲。 游戲涉及將硬幣翻轉四分之一鎳和一角硬幣。 如果硬幣為正面,則將硬幣的值添加到總數中;如果硬幣為正面,則不添加任何值。 當總數達到$ 1.00或更高時,游戲停止。 如果總計恰好是$ 1.00,則用戶獲勝;否則,用戶將輸。

//CoinToss Class
import java.util.Random;
public class Coin
{
   private String sideUp;

   public void toss()
   {
      Random flip = new Random();
      if (flip.nextInt(2) == 0)
      {
         String Up;
         Up = "Tails";
         Up = sideUp;
      }
      else
      {
         String Up;
         Up = "Heads";
         Up = sideUp;
      }
     }

   public String getSideUp()
   {
      return sideUp;
   }
}

無法運行的程序:

public class CoinToss
{
   public static void main(String[] args)
   {
     double total = 0.00;
     while (total <= 1.00)
     {
         Coin quarter = new Coin();
         quarter.toss();
         String side1 = quarter.getSideUp();
         if (side1 == ("Heads"))
         {
        total += 0.25;
         }
         else
         {
            total += 0;
         }
         Coin dime = new Coin();
         dime.toss();
         String side2;
         side2 = dime.getSideUp();
         if (side2 == ("Heads"))
         {
            total += 0.10;
         }
         else 
         {
         total += 0;
         }
         Coin nickel = new Coin();
         nickel.toss();
         String side3;
         side3 = nickel.getSideUp();
         if (side3 == ("Heads"))
         {
            total += .05;
         }
         else
         {
            total += 0;
         }

         }
         if (total == 1.00)
         {
         System.out.printf("Balance: %$,.2f\n", total);
         System.out.println("You win!");
         }
         else 
         {
         System.out.printf("Balance: %$,.2f\n", total);
         System.out.println("You lose!");
         } 
      }
     }

使用String equals()方法比較字符串

 Instead of side1 == ("Heads")

采用

side1.equals("Heads") and side2.equals("Heads")

並更正如下:

  if (flip.nextInt(2) == 0)
  {        
     sideUp = "Tails";
  }
  else
  {        
     sideUp = "Heads";
  }

更改您的硬幣課程

public class Coin
{
private String sideUp;

public void toss()
{
    Random flip = new Random();
    if (flip.nextInt(2) == 0)
    {
        sideUp = "Tails";
    }
    else
    {
        sideUp = "Heads";
    }
}

public String getSideUp()
{
    return sideUp;
}
}

這樣可行!!

如上所述,使用.equals()或.equalsIgnoreCase()方法比較字符串...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM