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

发布时间 - 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


相关推荐: jquery插件bootstrapValidator表单验证详解  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  香港网站服务器数量如何影响SEO优化效果?  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  公司网站制作价格怎么算,公司办个官网需要多少钱?  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  IOS倒计时设置UIButton标题title的抖动问题  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  Laravel如何升级到最新版本?(升级指南和步骤)  javascript中闭包概念与用法深入理解  个人网站制作流程图片大全,个人网站如何注销?  如何选择可靠的免备案建站服务器?  javascript日期怎么处理_如何格式化输出  Laravel如何配置Horizon来管理队列?(安装和使用)  C语言设计一个闪闪的圣诞树  详解阿里云nginx服务器多站点的配置  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  智能起名网站制作软件有哪些,制作logo的软件?  JavaScript如何实现倒计时_时间函数如何精确控制  零基础网站服务器架设实战:轻量应用与域名解析配置指南  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  如何用y主机助手快速搭建网站?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  如何在七牛云存储上搭建网站并设置自定义域名?  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  JS中对数组元素进行增删改移的方法总结  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  Python结构化数据采集_字段抽取解析【教程】  Laravel如何使用Blade模板引擎?(完整语法和示例)  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  如何挑选最适合建站的高性能VPS主机?  在线制作视频的网站有哪些,电脑如何制作视频短片?  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  免费视频制作网站,更新又快又好的免费电影网站?  电商网站制作价格怎么算,网上拍卖流程以及规则?  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  深圳网站制作平台,深圳市做网站好的公司有哪些?  简单实现Android文件上传  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  JavaScript如何操作视频_媒体API怎么控制播放  网站制作壁纸教程视频,电脑壁纸网站?  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  JavaScript如何实现继承_有哪些常用方法  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  香港服务器WordPress建站指南:SEO优化与高效部署策略