netbeans中的“找不到符号”错误(Java Netbeans 6.5)

时间:2013-01-19 04:57:51

标签: java netbeans

对于我最初的Java介绍项目,我决定做一个Mastermind Peg Game。

这是提交按钮代码:

private void submitButtonActionPerformed(java.awt.event.ActionEvent evt) {

    Integer guess1, guess2, guess3, guess4;
    Integer rightnumber = 0, rightposition = 0;

    guess1 = Integer.parseInt (firstInput.getText());
    guess2 = Integer.parseInt (secondInput.getText());
    guess3 = Integer.parseInt (thirdInput.getText());
    guess4 = Integer.parseInt (fourthInput.getText());

    //Values are compared to the actual guess. 
    //(THIS IS WHERE I GET THE FOLLOWING ERROR: 
    //"cannot find symbol, symbol : variable answerdigit, 
    //location: class finalproject.Singleplayer"

    if ( guess1 == answerdigit[0]);
    {
        rightposition = rightposition + 1;
    }
}

这是“开始”按钮。这里产生了4位数的答案/代码。

private void startButtonActionPerformed(java.awt.event.ActionEvent evt)
{                                            
    // Declare variables for 4 digit answer, guess for each number
    Integer one, two, three, four;

    //Generate random number between 1 and 6 for each digit in the answer
    int[] answerdigit = new int[4];

    for(int i=0;i<4;i++)
    {
        answerdigit[i]=(int)(Math.random()*6+1);
    }
}              

我收到错误:

cannot find symbol, symbol : variable answerdigit, location: class finalproject.Singleplayer

我不明白错误的含义。

3 个答案:

答案 0 :(得分:2)

answerdigit无法访问,因为您已将其声明为某个位置&amp;它只能访问该本地范围,以便在您必须在类

中声明它的任何地方访问它

e.g。

class cls
{
 int[] answerdigit;
//your remaining code
}

你已经在

中声明了它
private void startButtonActionPerformed(java.awt.event.ActionEvent evt)

并在

中访问它
private void submitButtonActionPerformed(java.awt.event.ActionEvent evt)

这就是为什么它会给出错误。

答案 1 :(得分:1)

看起来你有一个可变范围问题:answerdigit声明为startButtonActionPerformed方法的局部,因此只在此方法内部可见,而在其他地方根本不存在。如果要在类的其他地方使用此变量,则必须在类中声明数组变量answerdigit。

答案 2 :(得分:0)

int[] answerdigit = new int[4];应该在private void startButtonActionPerformed(java.awt.event.ActionEvent evt)此方法范围内的类范围内!

只需将int[] answerdigit = new int[4];此语句放在方法之外,您的代码就可以了......:)