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的范围内有效,那就要加括号