0

嗨,我正在学习在线 Java 课程,这些是给我的说明:

  1. 对于一个二口之家,计算三个组合的出现百分比:两个男孩、两个女孩或一个男孩和一个女孩。
  2. 您的程序应该打印样本量、所有男孩、所有女孩以及一男一女的百分比。

我遇到的问题是我不知道如何计算每个家庭有多少的值,例如,如果样本量是 5 个家庭,其中 G 是一个女孩,B 是一个男孩,这是示例组 BG GB BB GG GB 如何打印出三个家庭,一个男孩和一个女孩,一个家庭有两个女孩,一个家庭有两个男孩?这是我到目前为止的代码:

import java.util.Scanner;
import java.io.File;
import java.io.IOException;
public class family
{
    public static void main(String[] args) throws IOException
    {
    String token = "";
    File fileName = new File("test1.txt");
    Scanner inFile = new Scanner(fileName);
    String BG =("BG");
    String GB =("GB");
    String BB =("BB");
    String GG =("GG");
    int sampleSize = 0;
    int twoBoys = 0;
    int oneBoyOneGirl = 0;
    int twoGirls = 0;
    while (inFile.hasNext())
    {
        token = inFile.next( );
        System.out.println(token);
    }
    inFile.close();
    if(token == BG)
    {
        oneBoyOneGirl++;
    }
    else if(token == GB)
    {
        oneBoyOneGirl++;
    }
    else if(token == BB)
    {
        twoBoys++;
    }
    else
    {
        twoGirls++;
    }
    System.out.println("Sample Size: "+ sampleSize);
    System.out.println("Two Boys: "+ twoBoys);
    System.out.println("One Boy One Girl: "+ oneBoyOneGirl);
    System.out.println("Two Girls: "+ twoGirls);

    }
}
4

1 回答 1

1

该程序只查看最后一个令牌。if-else 块应在检索到每个令牌后在循环内执行,然后在循环外打印出值。

此外,您不应该使用 token == BB,因为这将无法正常工作。尝试 token.equals(BB) 代替。

于 2013-10-21T20:07:39.740 回答