public void actionPerformed(ActionEvent event)
{
String getStringChar = event.getActionCommand();
char c = getStringChar.charAt(0);
int arrayLength = Game.labelArray.length;
for(int i = 0; i < arrayLength; i++)
{
if(Game.labelArray[i].getText().contains(""+ c))
{
Game.labelArray[i].setVisible(true);
}
if(i == arrayLength && !(Game.labelArray[i].getText().contains(""+ c)))
{
score++;
Game.setImage(score);
}
}
}// end method actionPerformed
答案 0 :(得分:1)
当你说
时for(int i = 0; i < arrayLength; i++)
循环体中 i
永远不会等于arrayLength
。要获得最后一个元素,您的第二个if
应该看起来像(注意- 1
)
if(i == arrayLength - 1 &&
!(Game.labelArray[i].getText().contains(""+ c)))
答案 1 :(得分:1)
由于if语句是最后需要完成的事情,你可以在for循环之后执行它并进行一些小调整。
public void actionPerformed(ActionEvent event)
{
String getStringChar = event.getActionCommand();
char c = getStringChar.charAt(0);
int arrayLength = Game.labelArray.length;
for(int i = 0; i < arrayLength; i++)
{
if(Game.labelArray[i].getText().contains(""+ c))
{
Game.labelArray[i].setVisible(true);
}
}
if(!(Game.labelArray[arrayLength-1].getText().contains(""+ c)))
{
score++;
Game.setImage(score);
}
}// end method actionPerformed
评论后更新
public void actionPerformed(ActionEvent event)
{
String getStringChar = event.getActionCommand();
char c = getStringChar.charAt(0);
int arrayLength = Game.labelArray.length;
containsCharacter = false
for(int i = 0; i < arrayLength; i++)
{
if(Game.labelArray[i].getText().contains(""+ c))
{
Game.labelArray[i].setVisible(true);
containsCharacter = true
}
}
if(!containsCharacter)
{
score++;
Game.setImage(score);
}
}// end method actionPerformed