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

Java循环未输出预期结果,程序无输出求助

问题分析与修复方案

嘿,我一眼就揪出问题啦!你的程序之所以完全没有输出,是因为deleteFives方法里藏着一个死循环,导致程序永远卡在循环里,根本走不到返回结果和输出的步骤。

问题根源

看这段循环代码:

for (int j = start; start < end; j++) {
    count++;
}

循环的终止条件是start < end,但你在循环体里只递增了j,start的值从始至终都是传入的初始值(这里是1),而end是100——1 < 100这个条件会永远成立,程序就会一直循环下去,永远到不了return count这一步,自然也就不会有任何输出了。

修复方案

有两种简单的修复方式,选哪种都可以:

方式一:修正循环条件(推荐)

让循环条件依赖我们正在递增的变量j,这样循环会在j达到end时正常终止:

public static int deleteFives(int start, int end) {
    int count = 0;
    for (int j = start; j < end; j++) {
        count++;
    }
    return count;
}

方式二:改用start作为循环变量

如果想直接用start来控制循环,那就把递增的对象改成start:

public static int deleteFives(int start, int end) {
    int count = 0;
    for (; start < end; start++) {
        count++;
    }
    return count;
}

修复之后,调用deleteFives(1, 100)会输出99——因为从1到99一共是99个数字(不包含100)。如果你的需求是要包含end这个数,记得把循环条件改成j <= end或者start <= end哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:43:37