对于我最初的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
我不明白错误的含义。
答案 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];
此语句放在方法之外,您的代码就可以了......:)