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

统计指定数值出现次数的Java程序无输出,求解决建议

问题解决:统计指定数字在范围内的出现次数

你的代码陷入死循环,所以没有输出。核心问题是在while循环里直接修改了for循环的迭代变量i,破坏了for循环的正常迭代逻辑:比如第一次循环i=1,进入while后i被除以10变成0,退出while后for循环执行i++让i回到1,随后又进入while重复操作,永远无法推进到100,也就永远不会执行最后的打印语句。

修复后的代码

public class NumberCal {
    public static void main(String []args){
        int counter = 0;
        // 可修改此处指定要统计的数字
        int target = 9;
        for(int i=1; i<=100; i++){
            // 用临时变量temp处理数字拆解,不修改循环变量i
            int temp = i;
            while(temp > 0){ 
                int lastDig = temp%10;
                if(lastDig == target){         
                    counter++;     
                }
                // 无论是否匹配,都移除最后一位数字
                temp = temp/10;            
            }     
        }                    
        System.out.println(target + " 在1到100之间共出现 " + counter + " 次");
    }
}

关键改动说明

  • 新增target变量,统一管理要统计的数字,后续修改更方便
  • 使用临时变量temp代替原循环变量i进行位数拆解,保证for循环能正常从1迭代到100
  • 简化逻辑:不管是否匹配到目标数字,都执行temp = temp/10,避免重复代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:30:51