我正在尝试创建一个Hangman游戏,但我不知道如何正确初始化wordDisplay数组,它会出错 这个数组应该打印出下划线,用于猜测单词的字母,然后下划线被播放器猜到的字母替换
public class Hangman
{
static Scanner userInput = new Scanner(System.in);
public static void main(String args[])
{
String strword = "wordo";
char[] theWord = strword.toCharArray();
int k = strword.length();
int c;
char[] wordDisplay;
for(c=0;c<=k;c++)
{
wordDisplay[c] = '_';
}
int hang = 0;
int i;
while(hang<k+10)
{
System.out.println("type a letter");
for(i=0;i<5;i++)
{
System.out.print( wordDisplay[i] );
}
char userLetter = userInput.next().charAt(0);
for(i=0;i<=k;i++)
{
if(userLetter==theWord[i])
{
System.out.println("a letter guessed");
wordDisplay[i] = theWord[i];
}
else
{
hang++;
}
}
}
System.out.println("you hang");
}
}
答案 0 :(得分:2)
而不是
char[] wordDisplay;
for(c=0;c<=k;c++)
{
wordDisplay[c] = '_';
}
写:
char[] wordDisplay = new char[k+1];
for(c=0;c<=k;c++) {
wordDisplay[c] = '_';
}
或
char[] wordDisplay = new char[k];
for(c=0;c<k;c++) {
wordDisplay[c] = '_';
}
必须初始化Java中的每个对象。
答案 1 :(得分:1)
使用您拥有的长度初始化数组
char[] wordDisplay = new char[k]
并将您的for
更改为:
for(c=0;c<k;c++)
{
wordDisplay[c] = '_';
}
请记住,您的第一个索引是0
答案 2 :(得分:-1)
您不仅要声明,还要初始化数组。由于数组具有固定大小,因此应使用其大小对其进行初始化。另一方面,这是输入字符串的长度。例如:
PyGObject