java - 避免初始化变量以使代码仍然有效

标签 java variables

我做了一个猜谜游戏,我首先问: - 有多少玩家想玩这个游戏 - 分配所有玩家 - 开始按顺序猜数字 获胜者是猜对使用随机生成的数字的玩家

代码可以正常工作,但有一点让我担心; 我需要首先初始化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/

相关文章:

c# - 局部变量错误

java - 更改背景颜色后如何从无边框按钮中获取反馈?可选项目背景

java - 设置 ImageView 位置 - Android

variables - 如何定义一个在调用后保留其作用域的宏

string - 如何在 bash 中的两个函数之间传递包含空格的字母数字变量?

java - 这是重复局部变量问题的优雅解决方案吗?

java - 如何在 Eclipse 中将参数传递给 main 方法?

java - 使用 Bouncy CaSTLe 获取 RSA 公钥剩余部分

java - 替换 Vaadin 7 中的应用程序类

Javascript 单例 : How to access private variables?