统计指定数值出现次数的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
相关产品推荐
相关产品推荐

