减少使用' ifs'在Java应用程序中

时间:2018-03-10 17:44:58

标签: java if-statement

我正在学习Java,我的老师已经通过了一个练习,有4名候选人参加选举,问题是检查哪个候选人是赢家,是否会有第二轮(显示候选人出席和相应的投票)。问题是它不能使用数组来完成,这意味着我必须只使用' if' s。 你怎么做最快的,记住2和4候选人都有可能进入第二轮?

到目前为止我的进展:

if(voteLula > voteCiro && voteLula > voteCriancinha && voteLula > voteRose){
       winnervotes = votosLula;
       winner = "Lulalelé";
   }else if(voteCiro > voteLula && voteCiro > voteCriancinha && voteCiro > voteRose){
       winnervotes = votosCiro;
       winner = "Cirogrude";
   }else if(voteCriancinha > voteLula && voteCriancinha > voteCiro && voteCriancinha > voteRose){
       winnervotes = votosCriancinha;
       winner = "Criancinha";
   }else if(voteRose > voteLula && voteRose > voteCiro && voteRose > voteCriancinha){
       winnervotes= votosRose;
       winner = "Roseaçaí";
   }

我想过使用"> ="在这些循环中,但会大大增加代码行。

提前谢谢。

2 个答案:

答案 0 :(得分:3)

首先创建一个类来存储名称和投票:

public class Person {
    private String name;
    private int votes;

    public Person(String name, int votes) {
        this.name = name;
        this.votes = votes;
    }

    //add getter and setter
}

现在是最大的:

public static Person max(Person a, Person b, Person c, Person d) {

    Person max = a;

    if (b.getVotes() > max.getVotes())
        max = b;
    if (c.getVotes() > max.getVotes())
        max = c;
    if (d.getVotes() > max.getVotes())
        max = d;

     return max;
}

您的代码将以这种方式更具可读性和可理解性。

我现在让你思考第二轮,检查是否有多个最大值并不难。

答案 1 :(得分:1)

当此代码位于某个方法中时,只需<&gt; 返回&#34;然后&#34;块。通过这样做,您无需在整个地方使用其他。

如果此代码不是自己的方法,那么创建一个!

鉴于您的约束,可能无法减少if语句的数量。但正如所说 - 你可以简化结构。