这些指示我不清楚

时间:2019-01-31 23:13:02

标签: java coin-flipping

我必须编写一个使用两个称为硬币的文件的程序。一个文件名为硬币,另一个文件名为硬币测试器。书中的指示使我感到困惑,但我仍然尝试着做作业。

以下是给出的指示:

  

创建一个Coin类,其中包含一个变量faceUp,该变量存储0表示抬头,或者1表示尾巴抬头;一个名为showFace()的访问器方法,如果硬币为抬头,则返回0;如果硬币为抬头,则返回1。尾巴和   名为flipCoin()的修饰符方法,该方法将0到1之间的一个随机整数(包括0和1)分配给变量faceUp。

使用以下客户端代码测试该类:

public class CoinTester{
    public static void main(String[] args) {
        Coin nickel = new Coin();
        if (nickel.flipCoin() == 0) {
            System.out.println("Heads up!");
        } else {
            System.out.println("Tails up!");
        }
    }
}

这是我的名为coin文件的代码:

public class Coin {
    private int faceUp;

    public Coin() {
        faceUp = (int)(Math.random() * 2);
    }

    public int showCoin() {
        return faceUp;
    }

    public void flipCoin() {
        faceUp = (int)(Math.random() * 2);
    }
}

我肯定知道自己做错了,因为我很困惑并且程序存在语法错误。我觉得按照即时通讯的指示是不可能的。 CoinTester期望使用返回方法,但由于指示,我不允许这样做。

2 个答案:

答案 0 :(得分:2)

您正在将articles[0].Content的结果与整数进行比较。

但是您将flipCoin定义为flipCoin(不返回)。

其中之一必须改变

作为旁注:

没有规则说不允许使用修饰符方法返回值。尽管它们通常不这样做,但有时会返回一个值,以免程序员编写多余的行。

答案 1 :(得分:1)

如果一个方法提供了信息,它将返回一些信息。 flipCoin不应提供信息,而showCoin可以提供信息。实际上,这就是您要在if语句中使用的功能,以查看硬币的状态。此外,您需要在查看硬币之前先将其翻转。该代码应该可以工作:

public class CoinTester{
    public static void main(String[] args) {
        Coin nickel = new Coin();
        nickel.flipCoin();
        if (nickel.showCoin() == 0) {
            System.out.println("Heads up!");
        } else {
            System.out.println("Tails up!");
        }
    }
}