欢迎来到天天文库
浏览记录
ID:20267882
大小:35.50 KB
页数:6页
时间:2018-10-09
《for循环使用和用法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、简单的来说,++i和i++,在单独使用时,就是i=i+1。而a=++i,相当于i=i+1;a=i;而a=i++,相当于a=i;i=i+1;如果实在搞不明白++--怎么回事,那也不是什么天塌下来的事。因为a=++i完全可以写成i++;a=i。a=i++完全可以写成a=i;i++。而且,这也是一种好的程序风格:++--语句如非特殊需要,请单独一行使用。假设i=1如果执行a=i++完之后,a=1,i=2如果执行a=++i结果是,a=2,i=2要分清楚++i,和i++的区别.i++是先执行当前命令,再执行递增.++i是先递增,再执行命令缺点:
2、 对于数组,不能方便的访问下标值; 对于集合,与使用Interator相比,不能方便的删除集合中的内容(在内部也是调用Interator).除了简单遍历并读取其中的内容外,不建议使用增强的for循环。一、遍历数组语法为:for(Typevalue:array){ expressionvalue;}//以前我们这样写:voidsomeFunction(){ int[]array={1,2,5,8,9}; inttotal=0; for(inti=0;i3、=array[i]; } System.out.println(total); }//现在我们只需这样写(和以上写法是等价的):voidsomeFunction(){ int[]array={1,2,5,8,9}; inttotal=0; for(intn:array) { total+=n; } System.out.println(total);}这种写法的缺点: 显而易见,for/in(foreach)循环自动控制一次遍历数组中的每一个元素,然后将它赋值给一个临时变量(如上述代码中的in4、tn),然后在循环体中可直接对此临时变量进行操作。这种循环的缺点是: 1.只能顺次遍历所有元素,无法实现较为复杂的循环,如在某些条件下需要后退到之前遍历过的某个元素; 2.循环变量(i)不可见,如果想知道当前遍历到数组的第几个元素,只能这样写: inti=0; for(intn:array){ System.out.println("This "+i+"-thelementinthearrayis "+n); i++;}二、遍历集合 语法为: for(Typevalue:Iterable){ expressionvalu5、e;}注意:for/in循环遍历的集合必须是实现Iterable接口的。 //以前我们这样写:voidsomeFunction(){ Listlist=newArrayList(); list.add("Hello"); list.add("Java"); list.add("World!"); Strings=""; for(Iteratoriter=list.iterator();iter.hasNext();) { Stringtemp=(String)iter.next(); s+=6、temp; } System.out.println(s); }//现在我们这样写:voidsomeFunction(){ Listlist=newArrayList(); list.add("Hello"); list.add("Java"); list.add("World!"); Strings=""; for(Objecto:list) { Stringtemp=(String)o; s+=temp; } System.out.println(s);}//如果结合“泛型”7、,那么写法会更简单,如下: voidsomeFunction(){ Listlist=newArrayList(); list.add("Hello"); list.add("Java"); list.add("World!"); Strings=""; for(Stringtemp:list) { s+=temp;//省去了对强制类型转换步骤 } System.out.println(s);}//上述代码会被编译器转化为: voidsomeFunction(){ Listlist=newA8、rrayList(); list.add("Hello"); list.add("Java"); list.add("World!"); Strings=""; for(Iterator
3、=array[i]; } System.out.println(total); }//现在我们只需这样写(和以上写法是等价的):voidsomeFunction(){ int[]array={1,2,5,8,9}; inttotal=0; for(intn:array) { total+=n; } System.out.println(total);}这种写法的缺点: 显而易见,for/in(foreach)循环自动控制一次遍历数组中的每一个元素,然后将它赋值给一个临时变量(如上述代码中的in
4、tn),然后在循环体中可直接对此临时变量进行操作。这种循环的缺点是: 1.只能顺次遍历所有元素,无法实现较为复杂的循环,如在某些条件下需要后退到之前遍历过的某个元素; 2.循环变量(i)不可见,如果想知道当前遍历到数组的第几个元素,只能这样写: inti=0; for(intn:array){ System.out.println("This "+i+"-thelementinthearrayis "+n); i++;}二、遍历集合 语法为: for(Typevalue:Iterable){ expressionvalu
5、e;}注意:for/in循环遍历的集合必须是实现Iterable接口的。 //以前我们这样写:voidsomeFunction(){ Listlist=newArrayList(); list.add("Hello"); list.add("Java"); list.add("World!"); Strings=""; for(Iteratoriter=list.iterator();iter.hasNext();) { Stringtemp=(String)iter.next(); s+=
6、temp; } System.out.println(s); }//现在我们这样写:voidsomeFunction(){ Listlist=newArrayList(); list.add("Hello"); list.add("Java"); list.add("World!"); Strings=""; for(Objecto:list) { Stringtemp=(String)o; s+=temp; } System.out.println(s);}//如果结合“泛型”
7、,那么写法会更简单,如下: voidsomeFunction(){ Listlist=newArrayList(); list.add("Hello"); list.add("Java"); list.add("World!"); Strings=""; for(Stringtemp:list) { s+=temp;//省去了对强制类型转换步骤 } System.out.println(s);}//上述代码会被编译器转化为: voidsomeFunction(){ Listlist=newA
8、rrayList(); list.add("Hello"); list.add("Java"); list.add("World!"); Strings=""; for(Iterator
此文档下载收益归作者所有