做了一个简单的数组,似乎有一个编译错误

ndi*_*ing 0 java arrays loops

import java.util.Random;

public class RandomWithArray {
    public static void main(String[] args){
                Random r = new Random();

                int[] num = new int[5]; //same as "= {0,0,0,0,0}

                for (int i = 0; i <num.length; i++){
                    num[i] = r.nextInt(100) + 1;
                }

                System.out.println(num[i]);

    }
}
Run Code Online (Sandbox Code Playgroud)

Eclipse在打印线上告诉我,

 Multiple markers at this line
    - i cannot be resolved to a variable
    - Line breakpoint:RandomWithArray [line: 14] - 
     main(String[])
Run Code Online (Sandbox Code Playgroud)

究竟我做错了什么?

Pra*_*kar 6

因为i在for循环中声明,并且您正在使用它超出范围.

变量的范围i仅限于for块.

如果要遍历数组,则可以使用

for (int i = 0; i <num.length; i++){
      System.out.println(num[i]);
}
Run Code Online (Sandbox Code Playgroud)

或者,你也可以使用增强的for循环,它特别用于迭代数组和arraylists,

for(int i : num){
    System.out.println(i);
}
Run Code Online (Sandbox Code Playgroud)

这样您就不必自己处理增量和索引变量.