我在if之外声明了变量,并且取决于在if中分配的各种事物。问题是,在调试模式下检查显示在它离开if块之后,变量由于某种原因返回到未初始化。
代码看起来像这样:
function() {
double x;
if (something happens) {
x = some_func();
}
}
some_func()有效,当我在if括号中放置一个断点时,x显示的值正确,但一旦在外面,它就会回到未初始化状态(如前所述)。我有什么想法吗?
答案 0 :(得分:0)
根据您发布的伪代码,您需要做的就是在声明时或打印前初始化variable x
,因为您在条件语句中初始化变量并且我们知道在Java中使用之前需要初始化所有局部变量你得到变量未初始化的错误。
例如我们有: -
public class HelloWorld{
public static int check()
{
int c=10;
return c;
}
public static void main(String []args){
int a=1,x=5;
if (a==1) {
x = check();
}
System.out.println("hello World"+x);
}
}
在此示例中,如果从上面的示例中删除变量x的初始化部分,则会获得变量未初始化的错误,否则它将正常工作。
保持伪代码的问题的简单解决方案是您可以在声明时初始化variable x
。