我学校的一个教程要求我们创建一个投币应用程序。问题一开始我就糊涂了。
上面写着:
硬币有一个实例变量,用于指示结果是正面还是反面。这个实例变量应该是什么类型?
,所以它应该是布尔的,对吧?但这怎么可能呢?
下一段说:
硬币的构造者应将硬币的表面初始化为头。构造函数没有参数。
硬币有两种方法:
返回抛出结果的方法(即返回指示正面或反面的实例变量)。·抛硬币的方法
然后下一个将是:
抛硬币的方法需要一个随机数,要么0,要么1。
我们可以用数学类的方法得到一个随机数。Math.random()返回0到1之间的一个双值。
int num = (int)(Math.random() *2);//返回整数
发布于 2014-07-03 14:18:17
嗯,如果你学习得很深入,那么你可以在这里应用enum。
As,enum CoinToss{heads,tails}.
如果您没有学习这么多,您可以简单地将boolean分配给它。
比如,boolean heads=true; boolean tails=false;
发布于 2014-07-03 14:17:57
布尔值是正确的形式。
请记住,作为一个程序员,您正在创建真实世界的表示,以便有效和准确地解决问题。
你可以把它设置为字符串“头”和“尾”,但是这需要大量的资源来做一些你只想知道它是否是两种状态之一的事情。
这个特殊的例子可能看起来很琐碎,但是如果你有一百万或者十亿的硬币要追踪呢?
哦,顺便说一句,一定要记录下哪一个是正面还是反面。头像通常都是真的。
发布于 2014-07-03 14:23:47
我认为,在这种情况下,最好的方法是将硬币的一面作为实例变量,然后有常量来引用它们的名称。例如:
public class Coin {
public boolean side;
public static final boolean HEADS = true;
public static final boolean TAILS = false;
}像这样,你可以通过检查是否是quarter.side == Coin.HEADS,来检查硬币是否是硬币的头。虽然这并不是最好的性能(您正在检查某件东西是否等于true),但它使代码更加可读性,这在您开始工作时尤为重要。另外,对于这种情况,但是有两个以上的选项,您可能想要查看枚举。
https://stackoverflow.com/questions/24556082
复制相似问题