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

Java程序中odd与even变量无法自增问题:输出始终显示二者为0

问题排查:奇偶计数变量始终为0的原因

嘿,我一眼就看到问题出在哪了——你的continue语句直接跳过了奇偶判断的代码块!

看这段关键代码:

if (number != -1) {
    sum += number;
    total++;
    average = (double)sum / (double)total;
    continue; // 这里是罪魁祸首!
}
if (number % 2 == 0) {
    even++;
} else {
    odd++;
}

当你输入一个非-1的数字时,程序执行完sum、total和average的更新后,continue会直接让循环回到开头,后面判断奇偶的代码完全没有机会运行,所以even和odd一直停留在初始值0。

修复方案

其实很简单,把多余的continue删掉就行,顺便还能简化一下代码逻辑(因为前面已经判断过number是-1的情况并break了,所以不需要再判断number != -1):

修改后的核心循环代码:

while (true) {
    int number = Integer.valueOf(scanner.nextLine());
    if (number == -1) {
        System.out.println("Thx! Bye!");
        break;
    }
    // 直接处理有效数字,不需要额外判断
    sum += number;
    total++;
    average = (double)sum / (double)total;
    
    // 现在这段奇偶判断代码能正常执行了
    if (number % 2 == 0) {
        even++;
    } else {
        odd++;
    }
}

这样每次输入有效数字时,程序会先更新总和、计数和平均值,接着判断数字的奇偶性并更新对应的计数器,运行后就能得到正确的even和odd数值啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 04:27:27