我的一个学校教程要求我们创建一个投掷硬币的应用程序。 问题的开头我已经感到困惑。
它说:
硬币有一个实例变量,用于指示结果是头还是尾。这个实例变量应该是什么类型的?
所以它应该是布尔对吗?但是怎么可能呢?
下一位说:
硬币的构造函数应该将硬币的表面初始化为头部。构造函数没有参数。
硬币有两种方法:
•返回抛掷结果的方法(即返回指示头部或尾部的实例变量)。 •投掷硬币的方法
接下来将是:
投掷硬币的方法需要一个随机数,0或1。
我们可以使用Math类的方法获得一个随机数。 Math.random()返回0到1之间的double值。要将此值转换为0或1的整数,请使用以下代码
int num =(int)(Math.random()* 2); //返回一个整数
答案 0 :(得分:1)
好吧,如果你已经深入研究过,那么你可以在这里申请enum
。
As,enum CoinToss{heads,tails}
。
如果你还没有研究过这么多,你可以简单地为它分配boolean
。
像,boolean heads=true;
boolean tails=false;
答案 1 :(得分:0)
布尔值是正确的形式。
请记住,作为程序员,您正在创建现实世界的表示,以便高效准确地尝试解决问题。
您可以将其设置为字符串“head”和“tails”,但如果它是两种状态之一,那么您只需要知道很多资源。
这个特殊的例子可能看似微不足道,但是如果你有一百万或十亿个硬币可以追踪呢?
哦,顺便说一下,确保记录哪一个是正面或正面。通常头脑是真的。
答案 2 :(得分:0)
我认为在这种情况下执行此操作的最佳方法是将硬币的一面朝上作为实例变量,然后使常量能够通过名称引用它们。例如:
public class Coin {
public boolean side;
public static final boolean HEADS = true;
public static final boolean TAILS = false;
}
像这样,您可以通过检查是否quarter.side == Coin.HEADS
来查看是否有一个名为quarter的Coin。虽然这不是最佳性能(您要检查某些内容是否等于true),但它会使代码更具可读性,这在您开始时尤其重要。
此外,对于这样的事情,但有两个以上的选项,你会想要查看枚举。
答案 3 :(得分:-1)
//This enum represents the face of a coin
public enum CoinFace {
HEADS,
TAILS
}
public class Coin {
//Default starting face for a coin
private static CoinFace DEFAULT_FACE = CoinFace.TAILS;
//The current face of the coin
private CoinFace currentFace;
public Coin() {
currentFace = DEFAULT_FACE;
}
public void setFace(CoinFace face) {
currentFace = face;
}
public CoinFace getFace() {
return currentFace;
}
}
public class Main {
public static void main(String[] args) {
//We create the coin instance
Coin coinToToss = new Coin();
//We will toss the coin 10 times
for(int i = 0; i < 10; i++) {
System.out.println("Tossing coin...");
coinToToss = tossCoin(coinToToss);
System.out.println("Got " + coinToToss.getFace() + "!");
}
}
private static Coin tossCoin(Coin coin) {
//We will use the Random class for random results
Random random = new Random();
//We get a random enum value (coin face)
int randomFace = random.nextInt(CoinFace.values().length);
CoinFace tossedFace = CoinFace.values()[randomFace];
coin.setFace(tossedFace);
return coin;
}
}
答案 4 :(得分:-1)
这是设置此变量的简单(以及我逻辑)方式。你的构造函数:
public bool isHeads;
Constructor()
{ isHeads=true;}
翻转硬币功能:
void flipCoin()
{
if((int)(Math.random() *2) ==1)
isHeads = true;
else
isHeads = false;
}
返回结果函数:
bool getResult()
{ return isHeads;}