首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在这个java代码上有问题??应该在随机掷硬币中打印和计算正面和反面的数目。

在这个java代码上有问题??应该在随机掷硬币中打印和计算正面和反面的数目。
EN

Stack Overflow用户
提问于 2013-11-18 06:04:45
回答 2查看 1.3K关注 0票数 0

因此,正如标题所述,我必须使用一个类文件和一个主要方法java文件,它调用类文件并打印出起始硬币面,以及40多个硬币面翻转。我还需要有两个计数器来计数头数和尾数。下面是我的类文件和主方法文件的代码。我遇到的问题是,每当我运行它,它总是打印出,正面有0计数和尾部作为40计数。

类文件:

代码语言:javascript
代码运行次数:0
运行
复制
import java.util.Random;

    public class CoinToss 
    {
    private String sideUp;

    public CoinToss()
    {
        Random randomNum = new Random();
        int number = randomNum.nextInt();

        if(number%2 == 0)
            sideUp = "heads";
        else
            sideUp = "tails";

        System.out.println(sideUp);
    }

    public void toss()
    {
        Random randomNum = new Random();
        int number = randomNum.nextInt();

        if(number%2 != 0)
        {
            sideUp = "heads";
        }
        else
        {
            sideUp = "tails";
        }

        System.out.println(sideUp);
    }

    public String getSideUp()
    {
        return sideUp;
    }

    }

主要方法文件

代码语言:javascript
代码运行次数:0
运行
复制
public class CoinTossDemo 
{
public static void main(String[] args)
{
    int headsCount = 0;
    int tailsCount = 0;

    System.out.print("The Starting side of the coin is: ");
    CoinToss coin = new CoinToss();
    System.out.println();

    for(int x = 0; x < 40; x++)
    {
        System.out.print("The next side of the coin is: ");
        coin.toss();
        System.out.println();

        if(coin.equals("heads"))
        {
            headsCount++;
        }
        else
        {
            tailsCount++;
        }
    }

    System.out.println("The amount of heads that showed up is: " + headsCount);

    System.out.println();

    System.out.println("The amount of tails that showed up is: " + tailsCount);
}
}

请帮忙,谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-11-18 06:06:35

目前,您正在将CoinToss coin对象与字符串值heads进行比较,这就是为什么它总是指向else部分的原因。

我可以看到,您正在将当前掷硬币的结果设置为sideUp(即String)。因此,您需要将其与heads中的if进行比较。

代码语言:javascript
代码运行次数:0
运行
复制
if(coin.getSideUp().equals("heads")) { // getSideUp() returns the sideUp value
    headsCount++;
} else {
    tailsCount++;
}
票数 1
EN

Stack Overflow用户

发布于 2013-11-18 06:10:38

您要将您的答案分配给side up属性,因此获取该值coin.getSideUp()

代码语言:javascript
代码运行次数:0
运行
复制
           for (int x = 0; x < 40; x++)
    {
        System.out.print("The next side of the coin is: ");
        coin.toss();
        System.out.println();

        if (coin.getSideUp().equals("heads")) // use the side up property
        {
            headsCount++;
        }
        else
        {
            tailsCount++;
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20041144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档