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

Java用户输入数字计数问题:无法统计第二个输入数字

问题分析与解决方案

嘿,我一眼就揪出问题所在啦!你的代码里用了else if,这可是个逻辑陷阱——else if是互斥判断:只有当第一个if的条件不成立时,程序才会去检查else if的条件。当你输入两个正数(比如2 21435),第一个数满足num > 0,count加1后,程序直接跳过了第二个判断,所以最终只统计了1个正数,和预期的2不符。

快速修复方案

把else if改成独立的if语句,这样两个数的判断都会被执行,不管第一个数是否为正数:

Scanner in = new Scanner(System.in); 
int count = 0; 
int num = in.nextInt(); 
int num2 = in.nextInt(); 

// 换成两个独立的if,取消互斥逻辑
if (num > 0){ 
    count++; 
} 
if (num2 > 0){ 
    count++; 
} 

System.out.println(count);

现在输入2 21435,两个if都会触发,count会累加为2,完全符合你的预期。

更灵活的优化(支持任意数量输入)

如果以后需要统计更多输入的正数,用循环会更高效,不用逐个声明变量:

Scanner in = new Scanner(System.in); 
int count = 0; 

// 循环读取所有输入的整数(直到输入非整数时结束)
while (in.hasNextInt()) {
    int currentNum = in.nextInt();
    if (currentNum > 0) {
        count++;
    }
}

System.out.println(count);

这个版本不管你输入1个、2个还是N个数字,都能准确统计其中正数的数量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 20:02:43