A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王德南 中级黑马   /  2012-4-12 23:19  /  2724 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天看到的一段代码里面的For语句令我费解,代码如下:
class PassArray{

          static void vaTest(int v[]){
                 System.out.print("Number of args:"+v.length+"Contents:");
                 for(int x:v)   //这里的是什么意思啊???求解啊!!
              
   System.out.print(x+"  ");
                 System.out.println();
                 }
         public static void main(String args[])
                {
                        int n1[]={0};
                        int n2[]={1,2,3};
                        vaTest(n1);
                        vaTest(n2);
                  }
}

10 个回复

倒序浏览
这个是迭代,就是遍历v数组
回复 使用道具 举报
增强for循环,遍历数组里的元素。
判断数组int v[]数组中有有没有元素,有就执行下面语句,然后接着判断有没有下一个元素,一直到没有元素了,就会跳出循环
回复 使用道具 举报
for(int x:v)   //这里的是什么意思啊???求解啊!!
这是增强的for循环since  jdk1.5
在这里相当于
for(int i=0;i<v.length;i++)  System.out.print(v[i]+" ");
回复 使用道具 举报
高级for循环
                               
格式:

                for(数据类型 变量名 :被遍历的集合(collection)或者数组)
                {
                       
                }

“{}”里面进行你要对遍历的元素的操作。这个在毕老师基础视频,第17天第18小节讲到。楼主可以仔细看下
回复 使用道具 举报
增强for循环
for(类型 变量名:容器){循环体}
容器可以使集合,数组
判断容器中是否有元素,有就取出来赋给变量
回复 使用道具 举报
马强 中级黑马 2012-4-12 23:38:09
7#
for(:){}高级for循环
for(这里是限定参数类型:要传入的参数)
所以说,这个结果就是
传入一个数组到vaTest里,打印数组长度,之后用高级for打印数组里的内容。
System.out.print()这个空的没啥用。
回复 使用道具 举报
class PassArray{

          static void vaTest(int v[]){
                 System.out.print("Number of args:"+v.length+"Contents:");
                 for(int x:v)   //这里是高级for循环,是jdk1.5中的,定义了一个变量x,用来循环遍历数组v。
              
   System.out.print(x+"  ");
                 System.out.println();
                 }
         public static void main(String args[])
                {
                        int n1[]={0};
                        int n2[]={1,2,3};
                        vaTest(n1);
                        vaTest(n2);
                  }
}
回复 使用道具 举报
高级for循环,用于遍历数组和集合的。只能获取元素,不能对数组或集合进行操作。
回复 使用道具 举报
   for(int x:v)   //这里的是什么意思啊???求解啊!!
循环遍历数组中的每个元素赋值给X
回复 使用道具 举报
这是JDK1.5的新特性泛型的for循环
效果等同,那个更简单?
第二个for循环在编译的时候会强直检查list中的对象类型是否是UserBean类型,如果不是会报编译错误
第一个for循环编译没有问题,会在运行的时候报错
相比之下第二种方法对于程序的稳定性更有利,而且不用显示的类型转换,提升了软件性能,泛型编程也是JAVA提倡的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马