黑马程序员技术交流社区
标题:
关于for增强的疑问
[打印本页]
作者:
java陈辉
时间:
2013-12-7 22:13
标题:
关于for增强的疑问
本帖最后由 java陈辉 于 2013-12-9 20:05 编辑
public void test7(){
public static void main(String[] args){
int arr[]={3};
for(int i:arr){
i=10; }
System.out.println(arr[0]);
}
}
上面代码中arr[0]为什么等于3,而不是等于10,for循环没有改变数组里面的值?求解。
作者:
25343215
时间:
2013-12-7 22:24
for(int i:arr){
i=10; }
这段代码定义的i只在 for循环中生效,而且他也没有改变int数组,所有System.out.println(arr[0]);,当然返回3.
这里涉及局部变量的范围,及增强for循环的特点。
作者:
想你的夜
时间:
2013-12-7 22:41
楼主你在for循环中修改i的值,只是改变了变量的值,并没有改变数组的原始值,你想具体了解原因,我给你个连接说的很详细,正好讲到了这个知识点,
http://bbs.itheima.com/forum.php?mod=viewthread&tid=51712
其中在连接例子里面讲到Iterator接口下面的例子里的 book = "测试字符串"; 这一句代码和你说的是一个问题,你看了就清楚了
作者:
做个有理想的人
时间:
2013-12-7 23:00
增强的for循环里面遍历i,i数字里面的值,但是i的作用域在for循环里面,所以下面两种方式都可以达到效果了public class Count {
public static void main(String[] args) {
/* int arr[]={3};
for(int i=0;i<arr.length;i++){
arr[i]=10;
}
System.out.println(arr[0]);*/
int arr[]={3};
for(int i:arr){
i=10;
System.out.println(i);
}
}
}
作者:
胡永城
时间:
2013-12-7 23:14
1、
int[] numArray = { 1, 2, 3, 4, 5, 6 };
for (int i=0; i < numArray.length; i++) {
System.out.print(numArray[i]);
}
复制代码
2、
int[] numArray = { 1, 2, 3, 4, 5, 6 };
for (int i=0; i < numArray.length; i++) {
int j = numArray[i];// 这个j,就等价与1中的i,更改j的值不会影响数组元素值
System.out.println(j);
}
复制代码
作者:
红鹰(Jake)
时间:
2013-12-8 00:14
for增强型循环,只是从数组中取出数据给了变量i,你修改的只是i的值,而原来的值当然也没有发生变化。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2