Java - 打印在if语句中声明的变量

时间:2015-10-15 13:02:59

标签: java variables if-statement printing int

所以我试图在if / else语句中声明一个整数变量,并将其打印出来。像这样:

int x;
int a = 1;
if (a == 1)
{
int x = 5;
}
System.out.println(x);

这只是我尝试做的一个例子,因为我没有真正的代码,而且我不想重做它。虽然它真的不重要,因为这个例子正是我所需要的,只有不同的变量值和名称(但它仍然是一个整数)。起初我刚刚声明并初始化了if / else语句中的变量,但后来我被告知我需要在语句之外声明它...所以我这样做了,然后在语句中初始化它,然后继续调用它稍后。但是我仍然收到一个错误,要么它说变量没有被初始化,要么我为它赋值(x)然后在语句中更新它,我得到的错误是它有已经宣布。任何帮助将不胜感激,谢谢。

5 个答案:

答案 0 :(得分:1)

是。局部变量需要在使用之前进行初始化。如果在使用之前没有初始化它们,则实例变量初始化为默认值。

如果你对这个原因感到好奇吗? click here to know

再次回到你的问题,

因为考虑以下情况

关注评论。

int x;  // declared with no value 
int a = 0;
if (a == 1)  // this is false
{
 x = 5;  // this never executed 
}
System.out.println(x); // what you are expecting to print here ?

因此您需要使用值进行初始化。例如:用零初始化它,稍后根据条件

更改它
int x=0;
int a = 1;
if (a == 1)
{
 x = 5;
}
System.out.println(x);

答案 1 :(得分:0)

int x = -1;
int a = 1;
    if (a == 1)
    { // here begins inner 'area' for declared variables
     x = 5;
    }// and here ends
    System.out.println(x);
好的,我的坏!我想让他想知道为什么,并尝试其他一些写作方式,并让他得到“击中”#39;由IDE错误。 所以,就你宣布变量' inside' if语句只在​​该语句中可见!所以基本上如果你想在if语句中使用变量做一些事情,并且在它之外有结果,你需要在语句之外声明它,使它具有更广泛的可访问性!如果您有任何疑问,请不要犹豫;)

P.S。注意重新声明具有相同名称的变量,就像你试图在这里做的那样,它是一个令人讨厌的臭虫找到=)

答案 2 :(得分:0)

关键是您在上面声明了x。因此,请在int内的x之前删除if-statement。然后它工作。

int x; 
int a = 1; 
if (a == 1) { 
    x = 5; 
} 
System.out.println(x);

隐含一个整数以0开始。如果你想确定只写

int x = 0;

your code here

答案 3 :(得分:0)

只需在if语句之前指定int x = 0,然后不要将x重新声明为等于5的整数,而在if语句中设置x等于5。

答案 4 :(得分:0)

谢谢大家的答案,我意识到我犯了2个小错误,不允许它工作,我(在大多数尝试中)在if语句之前没有声明x的值,而且我有&# 39; INT'在if语句的x前面,这导致了重新减速错误。所以,是的,谢谢你的快速答案:)