无法访问循环外的变量 - java

本·格雷厄姆

出于某种原因,即使我在 for 循环之外初始化变量,我的代码也不会编译...

    public static void main(String[] args) {
      int x;

      for (int i = 0; i < 4; i++){
        x = 10;
      }

      System.out.println(x);
    }

我收到错误:

    error: variable x might not have been initialized
      System.out.println(x);

任何帮助将不胜感激,因为我知道答案将如此简单。

奥列格·斯克莱尔

你声明了变量,你没有初始化它,如果没有任何优化,编译器将不知道你的循环是否曾经产生过一次迭代来实际初始化它。尝试:

public static void main(String[] argv) {
    int x = 0;

    for (int i = 0; i < 4; i++){
        x = 10;
    }

    System.out.println(x);
}

诚然,这是java编译器的一个相当愚蠢的“特性”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章