Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.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 for循环初始化语句中的变量作用域_Java_Variables - Fatal编程技术网

Java for循环初始化语句中的变量作用域

Java for循环初始化语句中的变量作用域,java,variables,Java,Variables,在Java中,如果变量在for循环外部声明,那么for循环初始化中的变量作用域是什么?我有以下两个案例: 无效案例 //无效,未知i 私有整数i=0; 对于(i=0;i

在Java中,如果变量在for循环外部声明,那么for循环初始化中的变量作用域是什么?我有以下两个案例:

  • 无效案例
  • //无效,未知i
    私有整数i=0;
    对于(i=0;i<10;i++){
    }
    
  • 有效案例
  • private int i=0;
    void foo(){
    对于(i=0;i<10;i++){
    }
    }
    

    在第二种情况下,为什么可以访问我?

    为什么要在方法中声明一个变量
    private
    ?变量的作用域“关心”的只是它的定义位置,而不是它是否在循环中使用或该循环在何处。在第二种情况下,为什么可以访问我?在第二种情况下,我是一个实例变量。在第一种情况下,它不应该编译。
    // Invalid, unknown i
          private int i  = 0;
          for (i = 0; i < 10; i++) {
            
          }
    
      private int i  = 0;
      void foo() {
        for (i = 0; i < 10; i++) {
          
        }
      }