在一个非常简单的程序中复制局部变量错误

时间:2013-11-22 10:03:34

标签: java loops

public class PrintNum {

    public static void main(String[] args) {
        int i;  //declare a variable

        for (int i = 1; i <= 10; i++) {
            System.out.println(i);
        }
    }
}

当我在Eclipse中运行此代码时,它显示i是一个重复的局部变量。

6 个答案:

答案 0 :(得分:0)

您无需两次声明int i;。您已在for循环中声明它。

在for循环之前删除int i;或者只删除for循环中第一个i之前的int

int i;  //first decleration. 

for (int i = 1; i <= 10; i++) // second decleration (int i = 1)

因此,如果您希望变量的范围超出循环范围,则完全删除第一个decleration或删除第二个decleration中的int

答案 1 :(得分:0)

您宣布i两次。

执行:

int i;  //declare a variable

for (i = 1; i <= 10; i++) {  // re-assign i to 1
    System.out.println(i);
}

答案 2 :(得分:0)

您必须删除单独的int i;或for循环标题中的声明。

答案 3 :(得分:0)

局部变量作用域按顺序从第一个到最后一个遍历。因此,您不能使用另一个变量的范围声明变量。

   int i;// Its scope prevail until the end of main block
   for (int i = 1; i <= 10; i++) {
    System.out.println(i);

   } 

如果你这样做

 for (int i = 1; i <= 10; i++) {
    System.out.println(i);

   } 
   int i; //If you declare here, 

比Ok

答案 4 :(得分:0)

在你的程序中,你已经宣告了我两次    - 一个我是全球性的    - 第二个i是本地的 因此,当您要在方法中访问i时,系统无法理解(JVM) 我要用的, 索尔重命名任何我。该程序将运行

答案 5 :(得分:-1)

实际上,您已在i循环之前声明了第一个for,然后又在i循环中声明了for

请勿两次声明i