如何在循环中组合if语句

时间:2013-05-04 21:50:17

标签: java loops

我有这个类,在printVotes方法中,每次打印每个投票时都必须执行if语句。有没有办法结合if语句。我可以打印所有候选人的姓名和他们同时获得的票数吗?

public class TestCandidate {
    public static void main(String[] args)
    {
        Canidate[] canidate = new Canidate[5];

        // create canidate
        canidate[0] = new Canidate("John Smith", 5000);
        canidate[1] = new Canidate("Mary Miller", 4000);        
        canidate[2] = new Canidate("Michael Duffy", 6000);
        canidate[3] = new Canidate("Tim Robinson", 2500);
        canidate[4] = new Canidate("Joe Ashtony", 1800);       

        printVotes(canidate) ;    
    }

    public static void printVotes(Canidate [] List)
    {
        double max;
        int index;

        if (List.length != 0)
        {

            index = 0;
            for (int i = 1; i < List.length; i++)
            {

            }

            System.out.println(List[index]);
        }

        if (List.length != 0)
        {
            index = 1;
            for (int i = 1; i < List.length; i++)
            {

            }
            System.out.println(List[index]);
            return;
        }
    }
}

2 个答案:

答案 0 :(得分:1)

如果您传入List<Candidate> candidates;并假设每位候选人都有List<Integer> Votes

    List<Integer> votes= new ArrayList<Integer>() ;
    for(Candidate c:candidates)
    {
       votes.add(c.GetVote()) ;
    } 
    for(Integer v:votes)
    {
      System.out.println(v);
    }

答案 1 :(得分:0)

您可以覆盖Candidate类的toString()方法,如下所示:

public String toString() {
    return "Candidate Name: " + this.name + "\nVotes: " + this.votes;
}

然后你的printVotes方法看起来像这样:

public static void printVotes(Candidate[] list) {
    for(Candidate c : list) {
        System.out.println(c);
    }
}

正如其他人提到的那样,避免在变量名中使用大写字母,尤其是在使用List等单词的情况下。列表是一种集合类型,很容易混淆。