【问题标题】:voting system increment votes投票系统增加投票
【发布时间】:2026-01-30 14:15:02
【问题描述】:
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)

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

【问题讨论】:

标签: java javascript arrays increment voting-system


【解决方案1】:

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

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,值是投票值。

【讨论】:

  • 嘿!我试过你的建议,真的很管用!对此感激不尽!但我现在的问题是输出。我将它存储在一个文本文件中,输出如下所示: Candidate1 1 (
  • 如果您的应用程序中没有并发,您可以设法在计算之前加载完整文件,然后写入完整数据而无需附加。但是如果你想更进一步,你肯定需要一个数据库,比如mysql。这更复杂,但功能、灵活性和健壮性远大于管理简单文件。
【解决方案2】:

如果您的投票是 1,2,3,4 中的值 - 您可以简单地为每张投票使用以下内容:

result[vote-1]++;

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

【讨论】: