当前位置: 首页 > 面试题库 >

变量可能没有初始化错误?

梁丘钊
2023-03-14
问题内容

当我尝试编译时:

public static Rand searchCount (int[] x) 
{
    int a ; 
    int b ; 

    ...   

    for (int l= 0; l<x.length; l++) 
    {
        if (x[l] == 0) 
        a++ ;
        else if (x[l] == 1) 
        b++ ;
    }

    ...   

}

我得到这些错误:

Rand.java:72: variable a might not have been initialized
                a++ ;
                ^
Rand.java:74: variable b might not have been initialized
                b++ ;
                ^
2 errors

在我看来,我在方法的顶部初始化了它们。怎么了


问题答案:

你声明了它们,但没有初始化它们。初始化它们是将它们设置为等于一个值:

int a;        // This is a declaration
a = 0;        // This is an initialization
int b = 1;    // This is a declaration and initialization

因为未初始化变量,但a++for循环中增加了变量(例如),所以会收到错误消息。

Java原语具有默认值,但如下一位用户所述

当声明为类成员时,它们的默认值为零。局部变量没有默认值



 类似资料:
  • 我的编译器不会有它(现在怎么办?我必须完全重写整个应用程序吗? 要查看编译器拒绝的行,请执行系统搜索。出来println(celsius输出“C”); 当试图编译时,编译器告诉我,“变量celsiusOutput可能尚未初始化。”编译器对另外两个输出项中的任何一个都不说同样的话:华氏输出和开尔文输出。

  • 我只是不明白为什么这不起作用: HelloWorld.java:15:错误:变量isOdd可能没有被初始化 如果(isOdd==false){

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

  • 问题内容: 我有一个方法创建一个,另一个方法更改字符串 我的编译器说它“可能尚未初始化”。 有人可以解释吗? 问题答案: 变量可能尚未初始化 在内部定义方法时,必须在其中初始化程序的每个变量中必须先使用一个值的地方。 同样重要的是,您的代码将永远无法正常运行,因为Java中的字符串是不可变的,因此您无法编辑字符串,因此应更改方法。 我将您的代码更改为类似的内容,但是我认为您的编辑方法应该做另一件事

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

  • 我创建了包含构造函数和toString方法的类主管。但是,当我试图打印数组的索引时,出现了一个错误,“变量svArray可能尚未初始化。我该如何解决这个问题?”?