我做了一个猜谜游戏,我首先问: - 有多少玩家想玩这个游戏 - 分配所有玩家 - 开始按顺序猜数字 获胜者是猜对使用随机生成的数字的玩家
代码可以正常工作,但有一点让我担心; 我需要首先初始化guessingNumber变量,这看起来有点奇怪,因为我需要输入我知道不会随机生成的任何数字,如果我只声明变量int GuesingNumber,我会在这里得到一个错误
} while (los != guessingNumber); - guessingNumber is underlined with error :
局部变量guessingNumber可能尚未初始化
你知道如何避免初始化-1位并使代码仍然有效吗?
public class kopia {
public static void main(String[] args) {
Random rand = new Random();
int los = rand.nextInt(11);
int numberofPlayers;
int guessingNumber= -1;
Scanner scan7 = new Scanner(System.in);
Scanner scan = new Scanner(System.in);
Scanner scan2 = new Scanner(System.in);
do {
System.out.println(" Type number of players :");
while (!scan7.hasNextInt()) {
System.out.println("Sorry, bad data");
scan7.next();
}
numberofPlayers = scan7.nextInt();
} while (numberofPlayers <= 0);
String gracze[] = new String[numberofPlayers];
int liczbaProbGraczy[] = new int[numberofPlayers];
for (int i = 1; i <= numberofPlayers; i++) { // ++1
System.out.println("Number of player " + i);
gracze[i - 1] = scan.nextLine();
}
do {
for (int j = 0; j < gracze.length; j++) {
System.out.println(" Now guesssing " + gracze[j]);
System.out.println("Guess number 0 do 10");
while (!scan2.hasNextInt()) {
System.out.println("Cannot recognize this number");
scan2.next();
}
guessingNumber = scan2.nextInt();
liczbaProbGraczy[j]++;
if (guessingNumber == los) {
System.out.println("Winner is " + gracze[j] + "\n");
for (int c = 0; c < gracze.length; c++) {
System.out.println("Number of try's " + gracze[c] + " equals " + liczbaProbGraczy[c]);
}
break;
}
}
} while (los != guessingNumber);
scan7.close();
scan.close();
scan2.close();
}
}
最佳答案
您不能将某些内容与未初始化的整型变量进行比较,您需要先对其进行初始化。在您的情况下,您尝试使用比较,同时定义在比较为 true 时执行的同一 block 内的整数。
关于java - 避免初始化变量以使代码仍然有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60189231/