如何在投票程序中仅显示获得有效票数的名次

发布时间 - 2025-12-29 00:00:00    点击率:

本教程讲解如何优化投票统计程序,使其仅在某一名次(如第二、第三)实际存在非零得票时才输出对应结果,避免显示“third: ”等空行。核心思路是先判断票数是否为零,再决定是否执行查找与打印逻辑。

在当前投票程序中,firstScore、secondScore 和 thirdScore 已通过排序或比较逻辑确定,但无论其值是否为 0,程序都会无条件打印对应名次标题(如 "Third: "),导致输出冗余甚至误导(例如 Third: 后无任何候选人)。解决的关键在于:将打印标题与遍历查找逻辑整体封装在条件判断中,仅当该名次票数 > 0 时才执行。

以下是优化后的完整代码片段(基于您原有的结构):

// 仅当第一名有有效票数时显示 Winner
if (firstScore > 0) {
    System.out.print("Winner: ");
    for (int i = 0; i < Array.length; i++) {
        if (Array[i] != 0 && Array[i] == firstScore) {
            System.out.print(stringArray[i] + " ");
        }
    }
    System.out.println(); // 使用 println() 自动换行,更简洁
}

// 仅当第二名有有效票数时显示 Second
if (secondScore > 0) {
    System.out.print("Second: ");
    for (int i = 0; i < Array.length; i++) {
        if (Array[i] != 0 && Array[i] == secondScore) {
            System.out.print(stringArray[i] + " ");
        }
    }
    System.out.println();
}

// 仅当第三名有有效票数时显示 Third
if (thirdScore > 0) {
    System.out.print("Third: ");
    for (int i = 0; i < Array.length; i++) {
        if (Array[i] != 0 && Array[i] == thirdScore) {
            System.out.print(stringArray[i] + " ");
        }
    }
    System.out.println();
}

关键改进说明:

  • 使用 if (score > 0) 而非 if (score != 0) 更符合业务语义(票数不可能为负,> 0 即表示真实有效得票);
  • 每个名次块独立判断,互不影响,逻辑清晰且易于维护;
  • 统一使用 System.out.println() 替代 System.out.print("\n"),提升可读性与健壮性;
  • 条件判断位于外层,彻底避免了“标题已输出但无内容”的问题。

⚠️ 注意事项:

  • 确保 firstScore、secondScore、thirdScore 在进入此段代码前已完成正确计算(例如通过 Arrays.sort() 或手动比较得出前三名票数);
  • 若存在并列情况(如两人同获第二高票),当前循环逻辑会自然输出所有并列者,这是合理行为;
  • 建议将重复的查找逻辑封装为私有方法(如 printCandidates(int targetScore, String title)),进一步提升代码复用性与可测试性。

通过这一优化,程序输出将严格反映真实投票结果——得票为 0 的名次完全静默,界面更专业,用户体验更清晰。


# win  # 代码复用  # print  # String  # if  # sort  # 封装  # int  # 循环  # 时才  # 这是  # 这一  # 两人  # 遍历  # 使其  # 而非  # 无任何  # 能为  # 装在 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  Python图片处理进阶教程_Pillow滤镜与图像增强  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  Laravel如何升级到最新版本?(升级指南和步骤)  网站页面设计需要考虑到这些问题  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  香港服务器WordPress建站指南:SEO优化与高效部署策略  jQuery validate插件功能与用法详解  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  如何在阿里云部署织梦网站?  常州企业网站制作公司,全国继续教育网怎么登录?  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  JS去除重复并统计数量的实现方法  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  重庆市网站制作公司,重庆招聘网站哪个好?  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  Laravel如何配置任务调度?(Cron Job示例)  Laravel如何发送系统通知?(Notification渠道示例)  JavaScript中的标签模板是什么_它如何扩展字符串功能  如何实现javascript表单验证_正则表达式有哪些实用技巧  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  如何快速查询域名建站关键信息?  如何用低价快速搭建高质量网站?  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  Laravel API资源类怎么用_Laravel API Resource数据转换  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  简单实现Android验证码  Laravel如何创建自定义中间件?(Middleware代码示例)  网站制作大概多少钱一个,做一个平台网站大概多少钱?  微信小程序 五星评分(包括半颗星评分)实例代码  奇安信“盘古石”团队突破 iOS 26.1 提权  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  Laravel如何实现API速率限制?(Rate Limiting教程)  做企业网站制作流程,企业网站制作基本流程有哪些?  如何快速搭建安全的FTP站点?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  中山网站推广排名,中山信息港登录入口?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧