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

Java程序无语法错误但输出始终为0/0.0,求保留Scanner类的修复方案及原因

程序修复方案与问题原因

问题原因

你的程序输出始终为0/0.0,核心问题是输入值没有被正确传递到计算用的变量中:

  • Java类的成员变量如果没显式赋值,会自动赋予默认值:整数类型默认0,浮点类型默认0.0。
  • 你在使用Scanner读取输入时,错误地定义了和成员变量同名的局部变量,输入值只存在于局部变量中,而计算逻辑依赖的是未被赋值的成员变量,自然结果一直是0。

修复后的代码示例

import java.util.Scanner;

class AverageCalculator {
    // 用于存储输入值和计算结果的成员变量
    int num1, num2;
    double average;

    // 获取用户输入
    public void readInput() {
        Scanner sc = new Scanner(System.in);
        // 直接将输入值赋值给成员变量,不要重新声明局部变量
        System.out.print("输入第一个整数:");
        num1 = sc.nextInt();
        System.out.print("输入第二个整数:");
        num2 = sc.nextInt();
        sc.close();
    }

    // 计算平均值
    public void calculateAverage() {
        average = (double) (num1 + num2) / 2;
    }

    // 输出结果
    public void printResult() {
        System.out.println("平均值为:" + average);
    }

    public static void main(String[] args) {
        AverageCalculator calc = new AverageCalculator();
        calc.readInput();
        calc.calculateAverage();
        calc.printResult();
    }
}

修复说明

  1. 移除了读取输入时的局部变量声明,直接把Scanner读取的值赋值给类的成员变量num1和num2,确保计算时能用到用户输入的真实值。
  2. 保留了Scanner类的使用,满足你的需求。
  3. 增加了输入提示,让程序交互更清晰(可根据自身需求调整)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:27:12