如何在控制台中实现用户确认后的代码循环执行

发布时间 - 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 包裹主流程 + 方法封装,是实现用户驱动循环执行的简洁、健壮、可维护方案。


# java  # 工具  #   # ai 


相关栏目: 【 网站优化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服务提供者配置与加载