在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];
这个语句从方法中取出,你的代码就会很好……:)