投票制度增加投票

时间:2015-03-15 12:35:30

标签: java javascript arrays increment voting-system

if (vote1 == 1) {
    result[0] = result[0] + 1;
    i.println(pres1 + " " + result[0]);
}

我的if语句最多为4(例如:else if (vote1==2...3...4))。每次我选择多个候选人时,结果都会出错,有时输出会发生变化。我希望每当我选择候选人1时,他的投票会增加,当我选择其他候选人时,他们的投票也没有任何变化。

例如:

candidate 1 = 8 (and increment)
candidate 2 = 3 (and increment)
candidate 3 = 5 (and increment)
candidate 4 = 6 (and increment)

请有人帮忙,我的项目真的需要它

2 个答案:

答案 0 :(得分:3)

如果你需要增加多个候选人,你需要某种循环来更新每个候选人的投票:

int nbCandidates = 4;
int[] result = new int[nbCandidates];

// assuming you want to increment candidate 1, 3 and 4
// contained in an array
int[] candidatesToUpvote = {1,3,4};
for (int c : candidatesToUpvote) {
   result[c-1] += 1;
}

这里我假设候选人用[1,4]之间的数字来识别。由于数组索引在Java中从0开始,因此必须使用(id - 1)从id转换为索引。

有一个更健壮的解决方案HashMap<Integer, Integer>,其中键是候选ID,值将是投票值。

答案 1 :(得分:0)

如果您的投票值是1,2,3,4 - 您可以在每次投票时使用以下内容:

result[vote-1]++;

这个想法是你使用投票是一个正确范围的值(首先验证它!),然后你使用这个值作为你的数组的偏移量,并增加相关的条目。