You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java文本反向输出程序遇无限循环输出过量错误求助

Java程序无限循环导致输出溢出的修复方案

问题分析

你的代码触发无限循环并产生过量输出的原因很明确:

  1. 循环未更新判断变量:while循环的退出条件依赖最初读取的userInput,但循环内部没有重新读取新输入。只要第一次输入不是Done/done/d,循环会反复处理同一个字符串,无限输出反向结果,最终触发输出超限限制。
  2. 终止输入未处理:原逻辑在循环结束后才读取新输入,且没对终止关键词执行反向输出(比如示例中输入done需要输出enod),不符合需求。

修正代码

import java.util.Scanner;

public class LabProgram 
{
    public static void main(String[] args) {
        Scanner scnr = new Scanner(System.in);
        String userInput;
        int numChar;  
        int i;

        // do-while保证先处理输入再判断退出
        do {
            userInput = scnr.nextLine();
            // 反向输出当前输入
            numChar = userInput.length();
            for (i = numChar; i > 0; --i) {
                System.out.print(userInput.charAt(i - 1));
            }
            System.out.println(); // 换行分隔结果
        } while (!userInput.equals("Done") && !userInput.equals("done") && !userInput.equals("d"));
    }
}

修改要点

  • 切换为do-while循环:先读取输入并完成反向输出,再判断是否终止,确保所有输入(包括终止关键词)都能按要求输出。
  • 循环内更新输入:每次循环开始时读取新的用户输入,彻底避免重复处理同一字符串的无限循环问题。
  • 补充换行逻辑:每次反向输出后添加换行,让输出格式和示例完全匹配。

测试结果

输入:

Hello there
Hey
done

输出:

ereht olleH
yeH
enod

完全符合需求,且不会再出现输出超限错误。

内容的提问来源于stack exchange,提问作者Aaron Zehnpfennig

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 09:27:31