Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何调用Java中if()函数中的变量_Java_If Statement_Double - Fatal编程技术网

如何调用Java中if()函数中的变量

如何调用Java中if()函数中的变量,java,if-statement,double,Java,If Statement,Double,这将很难解释,但请容忍我: 比如说,我有一个if语句,它执行以下操作,是否可以在if语句之外使用变量x2: int x = 3 if(x>2.5) { String x2 = "X =" + Double.toString(x); } //How do I use the x2 outside the if function? System.out.println(x2); 每次我尝试这样做时,Eclipse都会在它下面加下划线,并说变量尚未定义,我收集到的原因是,如果x无法

这将很难解释,但请容忍我:

比如说,我有一个if语句,它执行以下操作,是否可以在if语句之外使用变量x2:

int x = 3

if(x>2.5) {
    String x2 = "X =" + Double.toString(x);
}

//How do I use the x2 outside the if function?
System.out.println(x2);

每次我尝试这样做时,Eclipse都会在它下面加下划线,并说变量尚未定义,我收集到的原因是,如果x无法创建,则可能无法创建x2。为了在if块之后使用它,必须在if块之前声明它

String x2 = null;
if(x>2.5){
    x2 = "X =" + Double.toString(x);
}

System.out.println(x2);

不,您不能使用在块之外声明的变量,但可以使用对象。引用变量和对象是不同的。虽然您的问题与此无关,但在您的情况下,我只需在循环之前声明变量:

int x = 3
String x2 = "";

if(x>2.5){
   x2 = "X =" + Double.toString(x);
}

//How do I use the x2 outside the if function?
System.out.println(x2);

在您希望使用的范围内声明变量,并通过所有路径将其指定给用法。在JLS中,明确的可分配性和可达性是以非人类友好的方式定义的,但是开发直觉相对容易,除非if语句中的常量表达式[不是函数]

int x = 3;
final String x2;

if (x > 2.5) {
    x2 = "X =" + Double.toString(x);
} else {
    x2 = "X out of bounds";
}

System.out.println(x2);

final向读者和编译器指出x2只分配过一次。

为答案欢呼,但另一个人被分配了first@user296950:没问题。为答案干杯,当它让我知道如果x小于2.5,打印null是个好主意时,我会给出答案?@Tom我必须用一些东西初始化它,由于我不知道具体的用例,我选择了null。