好的,所以我被分配制作一个骰子程序,可以调用它来掷骰子并返回它落在的侧面。我完成了骰子的一部分。但是,当我运行程序时,如果两个语句都等于if
,则Counter
语句不会执行以递增6
。我的计划有什么问题。
这是主要的:
public class PairOfDice {
public static void main(String[] args) {
int Counter = 0;
Dice D1 = new Dice();
Dice D2 = new Dice();
for (int X = 0; X <= 1000; X++)
{
D1.Roll();
D2.Roll();
if (D1.equals(6) && D2.equals(6))
{
Counter++;
}
else
{
System.out.print ("Dice 1 = " + D1 + " | ");
System.out.println ("Dice 2 = " + D2);
}
}
System.out.print ("There were " + Counter + " Box Cars");
}
}
这是我的骰子功能:
public class Dice {
private int Side;
public Dice()
{
Roll();
}
public void Roll()
{
Side = (int)(Math.random() * 6 + 1);
}
public String toString()
{
String A;
A = Integer.toString(Side);
return A;
}
}
答案 0 :(得分:2)
您似乎错过了.Equals()
的含义:
D1.equals(6)
D1
不等于6
。 D1
是Dice
对象的实例,6
是整数。您需要确定 D1
中的整数值是否等于6
。
首先,在Dice
类上为该值创建一个getter:
public int getSide()
{
return Side;
}
然后在比较中使用 :
if (D1.getSide() == 6 && D2.getSide() == 6)
答案 1 :(得分:1)
你需要检查骰子的值是否等于值6.现在你正在将骰子对象的值与一个没有意义的数字进行比较。覆盖等于或提供骰子值的吸气剂。
答案 2 :(得分:1)
我认为我所做的就是将if (D1.equals(6) && D2.equals(6))
更改为if (D1.equals(6) && D2.equals(6))
并删除了else
语句中的if
部分,并将打印输出到if
之前1}}陈述。
这是主要的:
public class PairOfDice {
public static void main(String[] args) {
int Counter = 0;
Dice D1 = new Dice();
Dice D2 = new Dice();
for (int X = 0; X <= 1000; X++)
{
D1.Roll();
D2.Roll();
System.out.print ("Dice 1 = " + D1 + " | ");
System.out.println ("Dice 2 = " + D2);
if (D1.Side == 6 && D2.Side == 6)
{
Counter++;
}
}
System.out.print ("There were " + Counter + " Box Cars");
}
}
这是骰子:
public class Dice {
int Side;
public Dice()
{
Roll();
}
public void Roll()
{
Side = (int)(Math.random() * 6 + 1);
}
public String toString()
{
String A;
A = Integer.toString(Side);
return A;
}
}
答案 3 :(得分:0)
请尝试以下逻辑
public class PairOfDice {
public static void main(String[] args) {
int counter = 0;
Dice d1 = new Dice();
Dice d2 = new Dice();
for (int X = 0; X <= 1000; X++)
{
d1.roll();
d2.roll();
if (d1.getSide()==6 && d2.getSide()==6)
{
counter++;
}
else
{
System.out.print ("Dice 1 = " + d1 + " | ");
System.out.println ("Dice 2 = " + d2);
}
}
System.out.print ("There were " + counter + " Box Cars");
}
}
public class Dice {
private int side;
public Dice()
{
roll();
}
public void roll()
{
side = (int)(Math.random() * 6 + 1);
}
public String toString()
{
String A;
A = Integer.toString(side);
return A;
}
public int getSide() {
return side;
}
}