Java程序如何实现循环运行直至主动取消?新手代码报错求助
解决Java句子反转工具的循环输入问题
嘿,作为Java新手遇到这种循环输入的问题太正常啦,我来帮你搞定这个可以反复输入直到主动退出的句子反转工具~
你的代码里存在的几个核心问题:
- 嵌套了不必要的无限循环:
while(run)已经是控制循环的逻辑,里面又加for(;;)会导致程序无法正常退出 Scanner在循环内重复创建:每次循环都新建Scanner实例会浪费系统资源,还可能引发输入异常- 缺少主动退出的判断逻辑:没有给用户提供取消程序的入口
- 代码不完整:
String str = ...部分没有完成输入获取的逻辑
修复后的完整可运行代码:
import java.util.Scanner; public class Reverser { public static void main(String[] args) { // 把Scanner放在循环外初始化,避免重复创建浪费资源 Scanner scan = new Scanner(System.in); boolean run = true; while(run) { System.out.println("Hello Welcome To The Sentence Reverser !"); System.out.println("Enter a sentence below to reverse (输入quit可退出):"); // 获取用户输入的完整句子 String str = scan.nextLine(); // 判断用户是否要退出程序,忽略大小写适配不同输入习惯 if(str.equalsIgnoreCase("quit")) { run = false; System.out.println("程序已退出,再见!"); continue; } // 用StringBuilder高效实现字符串反转,这是Java里常用的反转方式 String reversedStr = new StringBuilder(str).reverse().toString(); System.out.println("反转后的句子:" + reversedStr); System.out.println("------------------------"); } // 程序结束前关闭Scanner释放资源 scan.close(); } }
关键细节说明:
- Scanner复用:只在程序启动时创建一次Scanner实例,循环内重复使用,最后记得关闭资源避免内存泄漏
- 友好退出逻辑:通过判断用户输入是否为
quit(支持大小写)来触发退出,给用户明确的操作指引 - 高效反转实现:利用
StringBuilder的reverse()方法完成字符串反转,比手动遍历字符拼接效率高很多
内容的提问来源于stack exchange,提问作者Fahd
相关产品推荐
相关产品推荐

