public class Test { public static void main(String[] args) { int[] a = {1, 2, 3, 4, 5}; for(int e : a) int c = e; }
}
编译不能通过。
但是把红色部份改成:
for(int e : a) { int c = e; }
就对了。这是为什么?
新手分有点少。
因为不加花括号的这种写法,变量c的作用域,编译器搞不清楚。
如果把c定义在上面,就不会报错
public class Test { public static void main(String[] args) { int[] a = {1, 2, 3, 4, 5}; int c = 0; for(int e : a) c = e; }
}
如果要让c只能在for的范围内有效,那就要加括号