-1

在我最后一个介绍 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

我不明白错误是什么意思。

4

3 回答 3

2

answerdigit不可访问,因为您已在某处声明它并且只能在该本地范围内访问它,以便在您必须在类中声明它的任何地方访问它

例如

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

你已经在

private void startButtonActionPerformed(java.awt.event.ActionEvent evt)

并访问它

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

这就是它给出错误的原因。

于 2013-01-19T05:04:12.977 回答
1

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

于 2013-01-19T04:59:25.187 回答
0

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

只需int[] answerdigit = new int[4];将此语句从方法中删除,您的代码就可以了... :)

于 2013-01-19T05:05:57.327 回答