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]);
}
}
Eclipse告诉我,在打印行上,
Multiple markers at this line
- i cannot be resolved to a variable
- Line breakpoint:RandomWithArray [line: 14] -
main(String[])
我究竟做错了什么?
答案 0 :(得分:6)
因为在for循环中声明i
并且你在范围之外使用它。
变量i
的范围仅限于for
块。
如果要遍历数组,则可以使用
for (int i = 0; i <num.length; i++){
System.out.println(num[i]);
}
或者,你也可以使用增强的for循环,它特别用于迭代数组和arraylists,
for(int i : num){
System.out.println(i);
}
这样您就不必自己处理增量和索引变量了。
答案 1 :(得分:0)
为了支持@prasad kharkar的回答,我想引用section 14.4.2 of JLS:
块中局部变量声明的范围是其余部分 声明出现的块,从它自己开始 初始化程序,包括在右边的任何进一步的声明符 局部变量声明声明。