Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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 在运行时在逻辑块内初始化的局部变量的执行?_Java_Variables_Local Variables - Fatal编程技术网

Java 在运行时在逻辑块内初始化的局部变量的执行?

Java 在运行时在逻辑块内初始化的局部变量的执行?,java,variables,local-variables,Java,Variables,Local Variables,为什么像if-else这样的逻辑块中的局部变量的初始化可以在java的运行时执行,也可以不执行?有关ex,请参见以下代码: class Test { public static void main(String args[]) { int x; if(args.length>0) { x=10; } System.out.print(x); } } 如果我只是使用javactest.java进行编译,它会显示编译时错

为什么像if-else这样的逻辑块中的局部变量的初始化可以在java的运行时执行,也可以不执行?有关ex,请参见以下代码:

 class Test
 {
  public static void main(String args[])
  {
    int x;
    if(args.length>0)
    {
        x=10;
    }
    System.out.print(x);
  }
}

如果我只是使用javactest.java进行编译,它会显示编译时错误,并在传递任何命令行参数时将10打印为输出

代码中的问题是,对于空参数列表,在执行System.out.printx之前,不会初始化x


与成员变量相反,局部变量未使用默认值初始化;在x=10之前,其值未定义,您无法访问该变量。您可以将其声明为int x=0,自己给它一个默认值。

您可以展示一个您正在询问的特定代码示例吗?您能更精确一点吗?也许可以为运行时执行提供一个示例,为相反的情况提供另一个示例。我不清楚你在问什么…你的意思是如果它从未进入块?你确定编译器给了你一个错误吗?你以后怎么能执行呢?这可能是关于可能未初始化变量的警告吗?考虑AgsSt==0,在Soal.Out.PrtLnnx?@ DeHaar中打印什么,这是编译器错误,而不是警告:进一步阅读:7和