Java 我一直得到一个错误,说D1D还没有定义?

Java 我一直得到一个错误,说D1D还没有定义?,java,variables,text,integer,Java,Variables,Text,Integer,我正在制作一个行星探索文字游戏,你可以从5个不同的行星中进行选择,每个行星都比上面的行星更难,但也更足智多谋。我有一个Int变量:“D1D”,作为随机的危险值。我有一个死亡屏幕的东西,如果D1D=1就会激活,但它一直在说,它找不到D1D? (我正在使用JDoodle) 您正在本地声明变量(在每个if块中都是新的)。 在if块之后,变量再次消失 您应该在以下操作之前声明变量: public static void main(String[] args) { int min, max, ra

我正在制作一个行星探索文字游戏,你可以从5个不同的行星中进行选择,每个行星都比上面的行星更难,但也更足智多谋。我有一个Int变量:“D1D”,作为随机的危险值。我有一个死亡屏幕的东西,如果D1D=1就会激活,但它一直在说,它找不到D1D? (我正在使用JDoodle)


您正在本地声明变量(在每个if块中都是新的)。 在if块之后,变量再次消失

您应该在以下操作之前声明变量:

public static void main(String[] args) {
    int min, max, range, Message, D1R, D1D;
并且仅在if块中为其赋值:

    if ((P1.equals("Neptune"))) {
        min = 1;
        max = 25;
        range = max - min + 1;
        D1R = 150;
        D1D = (int)(Math.random() * range) + min;

由于变量名不一致,您在编译时还会遇到一些问题,但我希望这会对您有所帮助。

首先,
如果(D1D=1)
是错误的检查,那么如果(D1D==1)应该是
。其次,在所有这些不同的if子句中定义整数(例如
intd1d
)。这意味着,定义变量的范围仅限于if子句的范围。因此,一旦超出if子句,就不能访问变量,因为它们超出了范围。解决方案是在开始时定义变量,在
if
s之外,只在以后初始化它们。旁注:变量名应该以小写字母开头,并且是描述性的。但是,一旦定义了整数,我将如何编辑它们?感谢帮助!它正在工作,但现在它说“变量D1D可能尚未初始化”@Yeetus yes,因为可能会出现您从未初始化它的情况(例如,如果输入不等于提供的任何检查)。在这种情况下,在使用该变量之前,您可能需要检查它是否已初始化,或者事先使用一些您可能认为合适的默认值对其进行初始化。我修复了它:)。我所要做的就是加上:D1D=0;,开始时,在它被定义之后。
    if ((P1.equals("Neptune"))) {
        min = 1;
        max = 25;
        range = max - min + 1;
        D1R = 150;
        D1D = (int)(Math.random() * range) + min;