如何在控制台中实现用户确认后的代码循环执行
发布时间 - 2025-12-29 00:00:00 点击率:次本文介绍如何通过循环结构(如 while 或 do-while)让 java 程序在用户输入 "y" 时重复执行计算逻辑,并安全退出;同时推荐封装为方法以提升可维护性。
在开发交互式控制台程序时,常需根据用户选择决定是否重复执行核心逻辑(如数学计算、数据处理等)。直接使用 if 语句仅能做一次判断,无法实现“重复执行”,此时应引入循环控制结构。
最常用且推荐的方式是 do-
while 循环,因为它保证主体逻辑至少执行一次,并在末尾检查条件,更符合“先运行、再询问”的交互直觉。示例如下:
import edu.princeton.cs.algs4.StdIn; // 假设使用 Princeton 的 StdIn 工具类
public class CalculatorLoop {
public static void main(String[] args) {
String choice;
do {
// ? 将所有计算逻辑封装在此处(或调用独立方法)
performCalculation();
System.out.println("Wollen Sie die Rechnung nocheinmal ausführen? Y / N");
choice = StdIn.readString().trim().toUpperCase();
} while (choice.equals("Y"));
System.out.println("Auf Wiedersehn");
}
// ✅ 推荐:将计算逻辑提取为独立方法,提高可读性与复用性
private static void performCalculation() {
System.out.print("Geben Sie die erste Zahl ein: ");
double a = StdIn.readDouble();
System.out.print("Geben Sie die zweite Zahl ein: ");
double b = StdIn.readDouble();
System.out.println("Ergebnis: " + (a + b)); // 示例:简单加法
}
}⚠️ 注意事项:
- 使用 .trim().toUpperCase() 可忽略空格和大小写差异(如接受 "y"、" Y "),增强用户体验;
- 避免使用纯 while 循环配合前置判断(如 while (choice.equals("Y"))),否则需额外初始化 choice,易出错;
- 不推荐递归实现重复逻辑:虽技术可行,但无必要增加调用栈深度,存在栈溢出风险,且不符合循环场景的设计意图;
- 若逻辑复杂,还可进一步将输入验证、结果格式化等职责拆分为小方法,践行单一职责原则。
总结:用 do-while 包裹主流程 + 方法封装,是实现用户驱动循环执行的简洁、健壮、可维护方案。
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
jQuery中的100个技巧汇总
敲碗10年!Mac系列传将迎来「触控与联网」双革新
如何挑选高效建站主机与优质域名?
制作企业网站建设方案,怎样建设一个公司网站?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
Laravel PHP版本要求一览_Laravel各版本环境要求对照
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
如何在建站宝盒中设置产品搜索功能?
如何在局域网内绑定自建网站域名?
如何挑选最适合建站的高性能VPS主机?
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
如何在阿里云域名上完成建站全流程?
如何在Tomcat中配置并部署网站项目?
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
googleplay官方入口在哪里_Google Play官方商店快速入口指南
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
Linux系统命令中screen命令详解
如何在IIS7上新建站点并设置安全权限?
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
大型企业网站制作流程,做网站需要注册公司吗?
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
iOS正则表达式验证手机号、邮箱、身份证号等
微信小程序 input输入框控件详解及实例(多种示例)
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
Internet Explorer官网直接进入 IE浏览器在线体验版网址
郑州企业网站制作公司,郑州招聘网站有哪些?
如何在宝塔面板中创建新站点?
网站制作报价单模板图片,小松挖机官方网站报价?
如何在Windows 2008云服务器安全搭建网站?
音乐网站服务器如何优化API响应速度?
Laravel模型关联查询教程_Laravel Eloquent一对多关联写法
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
如何登录建站主机?访问步骤全解析
Laravel安装步骤详细教程_Laravel环境搭建指南
Laravel定时任务怎么设置_Laravel Crontab调度器配置
如何快速搭建FTP站点实现文件共享?
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
Windows Hello人脸识别突然无法使用
如何在IIS服务器上快速部署高效网站?
如何在云服务器上快速搭建个人网站?
详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
浅谈Javascript中的Label语句
深圳网站制作平台,深圳市做网站好的公司有哪些?
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载

