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

时间:2014-11-16 14:51:47

标签: 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都会强调它,并说该变量尚未定义,我收集的是因为x2可能无法创建x<=2.5,因此不会输出任何内容

我问这个的原因是因为我正在尝试制作一个程序,如果(条件为true)将一组变量通过电子邮件发送给我。

但是,如果条件为真,我可以将电子邮件代码放在外面,而不是在if语句中输入用于通过电子邮件发送数据的代码(我有大约20个),并获得20封不同的电子邮件。这样,所有20个变量将在一封电子邮件中发送,如果条件适用于所有这些变量。

我希望这是有道理的;如果您有任何问题,请发表评论。

3 个答案:

答案 0 :(得分:2)

你不能。你必须在if块之前声明它,以便在它之后使用它。

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

System.out.println(x2);

答案 1 :(得分:2)

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

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);

答案 2 :(得分:1)

在您希望使用它的范围内声明变量,通过所有使用路径明确地分配。确定的可分配性和可达性是在JLS中以非人类友好的方式定义的,但是开发了直觉&#34;因为它相对容易(除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只被分配一次。)