黑马程序员技术交流社区

标题: 高级for循环的使用规则 [打印本页]

作者: alax    时间: 2014-5-19 20:51
标题: 高级for循环的使用规则
高级for循环的使用规则
作者: 波涛    时间: 2014-5-19 21:12


你说的是for-each循环么?
比如通常我们在使用for循环获取数组元素时是比较麻烦的,在新版本的java中就可以使用For-Each循环来进行获取,其相对简单很多。For-Each循环的一般格式如下:

for(数据类型  变量 : 集合)
语句块

在for关键字后面的括号里先是集合的数据类型,接着是一个元素用于进行操作,它代表了当前访问的集合元素,然后是一个冒号,最后是要访问的集合。一般访问一个数组使用格式如下。
  1. int sum = 0;

  2. int[] nums={1,2,3,4,5,6,7,8,9,0};

  3. for(int i=0;i<nums.length;i++)

  4.    sum+=nums[i];
复制代码


这种方式是比较复杂的,如果使用Fo-Each循环来重写该段代码是非常简单的,它的格式如下:
  1. int  sum=0;
  2. int []nums={1,2,3,4,5,6,7,8,9,0};
  3. for(int i  : nums)
  4.      sum+=i;
复制代码

下面是一个完整的示例程序:

  1. public class ForEach
  2. {
  3.    public static void main(String []args){
  4.       int  sum = 0;
  5.       int [] nums = {1,2,3,4,5,6,7,8,9,0};
  6.       for(int i : nums)
  7.      {
  8.           System.out.println("数组元素:"+ i );
  9.           sum += i;
  10.      }
  11.     System.out.println("数组元素和:" + sum);
  12.   }
  13. }
复制代码


另外说明的是,foreach语句并不能完全取代for语句,foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。
foreach语句是for语句的特殊简化版本,任何的foreach语句都可以改写为for语句版本,但反之未必。
所以有些for循环是没法写成等效的for each语句的。


作者: wyqs92    时间: 2014-5-19 21:46
foreach循环必须明确被遍历的目标,且目标只能是数组或collection集合,一般只对基本遍历简化使用。此外这种写法一般结合泛型使用。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2