如何在投票程序中仅显示获得有效票数的名次
发布时间 - 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, S
tring 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优化与高效部署策略


tring title)),进一步提升代码复用性与可测试性。