Netbeans 中的"cannot find symbol"错误 ( Java Netbeans 6.5 )



在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
我不明白这个错误是什么意思。

answerdigit是不可访问的,因为您已经在某处声明了它&它只能在局部范围内访问,要在其他地方访问它你必须在类

中声明它

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

您已经在

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

并在

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

您似乎有一个变量作用域问题:answerdigit被声明为startButtonActionPerformed方法的局部,因此只在该方法内部可见,并且在其他地方根本不存在。如果你想在类的其他地方使用这个变量,那么数组变量answerdigit必须在类中声明。

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

只要把int[] answerdigit = new int[4];这个语句从方法中取出,你的代码就会很好……:)

相关内容

  • 没有找到相关文章

最新更新