当前位置: 首页 > 知识库问答 >
问题:

Java中的变量初始化错误[重复]

云宾鸿
2023-03-14

我有以下方法:

private static double mailTypeOne(double oz) {
    double total;
    if (oz <= 16) {
        total = 3.50;
    } else if (oz > 16 && oz <= 32) {
        total = 3.95;
    } else if (oz > 32) {
        total = 3.95 + (Math.ceil((oz - 32) / 16) * 1.20);
    }
    return total;
}

当编译我的代码时,我得到这个编译错误:< code >变量' total '可能没有初始化

我的代码的哪一部分触发了错误?

共有3个答案

韦志新
2023-03-14

if-else语句应以else语句结尾,这可确保变量<code>total<code>必须初始化,无论<code>oz<code>的值是多少

另一种方法是在声明期间将 total 初始化为 0.0。也就是说,代替双倍总计;双倍总计 = 0.0;

琴宾鸿
2023-03-14

声明与初始化不同。只需说

 double total = 0;
云正信
2023-03-14

您的else if不一定要遵循(编译器)。你需要这样的东西

private static double mailTypeOne(double oz) {
    double total;
    if (oz <= 16) {
        total = 3.50;
    } else if (oz <= 32) {
        total = 3.95;
    } else {
        total = 3.95 + (Math.ceil((oz-32)/16) * 1.20);
    }
    return total;
}

你也可以把上面的简化成

private static double mailTypeOne(double oz) {
    if (oz <= 16) {
        return 3.50;
    } else if (oz <= 32) {
        return 3.95;
    }
    return 3.95 + (Math.ceil((oz-32)/16) * 1.20);
}
 类似资料:
  • 问题内容: 我的Java程序中出现以下错误: Java变量未初始化错误…错误:变量nam和r未初始化位置类子级 但是并且已经初始化,但是我仍然遇到相同的错误。 问题答案: 不要获取 默认值 ,应在使用它们之前对其进行初始化,并使用main中的默认值进行初始化,这样就可以了。 顺便说一句,考虑为您的类和变量命名是有意义的。

  • 我有以下Java代码: 但是,当我运行它时,它会抛出以下错误: 我在do之前初始化了变量。while 循环,并在 try. 中设置值。捕获循环。似乎尚未设置该变量。抱歉,如果这是一个相当基本的问题,但我似乎无法弄清楚。

  • 我不知道这段代码有什么问题,也不知道为什么会出现错误: 变量isPrime可能尚未初始化 这是完整的代码:

  • 问题内容: 当我尝试编译时: 我得到这些错误: 在我看来,我在方法的顶部初始化了它们。怎么了 问题答案: 你声明了它们,但没有初始化它们。初始化它们是将它们设置为等于一个值: 因为未初始化变量,但在循环中增加了变量(例如),因此会收到错误消息。 Java原语具有默认值,但如下一位用户所述 当声明为类成员时,它们的默认值为零。局部变量没有默认值

  • 我试图创建一个方法来计算数组分数中所有元素的总和。当我编译它的时候,我得到了一个“变量可能没有被初始化的错误”,即使我已经在方法中声明了它

  • 问题内容: 以下代码段使我在第1行出现了编译器错误。 据我了解,float用于十进制变量。 我是否遗漏了明显的东西,还是应该始终对小数变量初始化使用强制转换? 编辑:我知道’f’可以在末尾用于浮点变量,但这是强制性的吗? 问题答案: 除非您指定浮点文字只是s,否则它们将被视为s。(类似地,除非另有说明,否则整数文字是s。)将字母追加到数字上使其成为a : JLS具有用于文字值的全面输入规则。不,你