所以我试图在if / else语句中声明一个整数变量,并将其打印出来。像这样:
int x;
int a = 1;
if (a == 1)
{
int x = 5;
}
System.out.println(x);
这只是我尝试做的一个例子,因为我没有真正的代码,而且我不想重做它。虽然它真的不重要,因为这个例子正是我所需要的,只有不同的变量值和名称(但它仍然是一个整数)。起初我刚刚声明并初始化了if / else语句中的变量,但后来我被告知我需要在语句之外声明它...所以我这样做了,然后在语句中初始化它,然后继续调用它稍后。但是我仍然收到一个错误,要么它说变量没有被初始化,要么我为它赋值(x)然后在语句中更新它,我得到的错误是它有已经宣布。任何帮助将不胜感激,谢谢。
答案 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前面,这导致了重新减速错误。所以,是的,谢谢你的快速答案:)