当前位置: 首页 > news >正文

如何在代码中实现条件控制,避免不必要的输入操作

在程序设计中,巧妙运用条件控制语句可以有效避免冗余输入,提高代码效率。本文以学生信息输入为例,讲解如何优化代码,避免在学生身份证重复时重复姓名、年龄和地址。

原始代码存在以下问题:ArrayList list在每次函数调用时重新创建为空,导致ID重复检查失效;sc.next()多次调用导致输入值错位。

改进代码如下:

public static int addStudent(Student a, ArrayList<Student> list) { Scanner sc = new Scanner(System.in); Student st = new Student(); int temp = 0; // 判断是否成功添加 System.out.println("请输入学生id"); String inputId = sc.next(); // 检查ID是否重复 for (Student s : list) { if (inputId.equals(s.getId())) { System.out.println("学生身份证已经存在!"); return temp; // ID重复,直接返回 } } st.setId(inputId); System.out.println("请输入学生姓名"); st.setName(sc.next()); System.out.println("请输入学生年龄"); st.setAge(sc.nextInt()); System.out.println("请输入学生地址"); st.setAddress(sc.nextLine()); // 使用 nextLine() 读取整行输入,避免换行符干扰 temp = 1; list.add(st); // 在列表中添加学生信息 return temp; }

关键改进:

  1. 外部传入学生名单: ArrayListt将是Array list作为参数传输函数,避免每次调用都重新创建列表,确保基于全局学生信息的ID重复检查。

  2. 提前读取ID: 单独处理ID输入,存储在inputID变量中,避免输入错位。

  3. 使用nextline(): 在阅读地址时使用SC.nextLine()避免nextint()留下换行符干扰后续输入。

  4. 添加学生信息: 学生信息成功添加后,将st添加到list中。

  5. 提示信息: 添加ID重复提示信息,改善用户体验。

通过这些改进,代码逻辑清晰,避免不必要的输入操作,提高代码效率和可维护性。 建议开发人员熟练使用断点调试等调试工具,帮助理解代码执行过程,及时发现并解决问题。

http://www.cnnetsun.cn/news/1573434.html

相关文章:

  • 如何在Redis中高效获取和缓存产品排行榜列表
  • Qwen3智能字幕对齐系统快速开始:Anaconda创建独立Python环境
  • Unity游戏模组革命:MelonLoader新手10分钟完全指南
  • AI 净界技术突破:RMBG-1.4 对运动模糊图像的分割表现
  • klogg与glogg对比分析:为什么你应该升级到这个更快的日志查看工具
  • 超越基础命令:用FFmpeg C API实现高级动态水印(时间戳、多位置、实时更新)
  • Apache Nutch插件开发完全教程:如何自定义爬虫功能模块
  • FigmaCN:3分钟让Figma界面变中文的终极解决方案 [特殊字符]
  • NodeJS进程管理与集群部署:实现高可用服务器架构的终极指南
  • 解决语音合成难题:用QWEN-AUDIO实现高质量、带情绪的TTS
  • 10个VSCode Rainbow Fart高级配置技巧:个性化设置完全手册
  • Windows下用Anaconda一键搞定Labelme批量转换JSON到Dataset(附bat脚本)
  • PowerPaint-V1 Gradio效果展示:CNN增强的图像修复对比实验
  • TranslucentTB终极指南:如何彻底改造Windows任务栏的视觉体验
  • Qwen2-VL-2B-Instruct效果展示:同一张图输入不同文本指令的匹配得分差异分析
  • 3步搞定游戏串流:Sunshine开源方案让你随时随地玩PC大作
  • Python内存占用暴增270%?用这7个内置工具实时监控、精准归因、秒级优化(附可落地的MemoryProfiler脚本)
  • NaViL-9B效果展示:复杂布局图片中文字识别+语义理解双任务成果
  • 移动端集成方案探索:将cv_resnet101_face-detection_cvpr22papermogface模型部署到安卓设备
  • Redis 部署、主从复制与哨兵模式配置​
  • OpenClaw替代方案:当Qwen3.5-4B-Claude不可用时的备选
  • Qwen3-ASR-0.6B参数详解:0.6B模型显存占用<4GB的轻量化部署方案
  • 久保田水稻联合收割机(单个SW三维图)
  • 【开题答辩全过程】以 基于.net超市管理系统设计与实现为例,包含答辩的问题和答案
  • 毕业设计_定梁式数控雕刻机机械结构设计
  • Linux exFAT文件系统驱动完全指南:从原理到实践
  • Field II 超声线阵成像系列2——复合平面波成像的工程实现与性能权衡
  • 解决特定调度问题的执行器(Runner)程序
  • 雪女-斗罗大陆-造相Z-Turbo效果展示:基于Transformer架构的动漫风格图像生成
  • Janus-Pro-7B模型压缩与量化实战:在低显存GPU上的部署优化