[英]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.