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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 凝聚 中级黑马   /  2013-10-3 09:14  /  1651 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 凝聚 于 2013-10-3 10:23 编辑

for(String s :str)
{
}
谁能具体解释一下类似这样的for语句。

点评

String数组类型,s每个数组元素,str数组名  发表于 2013-10-3 09:22

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

10 个回复

倒序浏览
高级for循环,这是JDK1.5的新特性,你去看张老师的高新技术1的第十个视频,
功能是对数组或集合的遍历,集合只能是可迭代的集合。
格式:  for(元素类型  元素变量名 :集合或数组){}

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1 很给力!

查看全部评分

回复 使用道具 举报
这就是for语句的迭代功能,for语句增强,里面s是定义的变量,str是你要遍历的元素,写个代码你就知道了。
class ForTest{
        public static void main(String[] args){
                String[] str=new String[]{"abc","123","张三","美灯","李四"};
                for(String s:str){
                        System.out.println(s);
                }
        }
}

最后执行的结果是:
abc
123
张三
美灯
李四

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1 赞一个!

查看全部评分

回复 使用道具 举报
用于循环遍历数组和集合
此循环的好处在于:无须获得数组或集合的长度;无须使用索引

参数说明:
for(type var : array | collection) {}
type是数组或集合的类型,var是形参,此循环会依次将数组或集合元素赋值该变量

祝编程愉快!

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1 很给力!

查看全部评分

回复 使用道具 举报
这个是在C语言中叫foreach,Java1.5推出的新特性,叫遍历,也叫迭代,和iterator实现的原理类似,
给你一段代码研究一下
int[] i={1,2,3,4,5};
for(final Integer i:i arr){
     System.out.println(i);
}

希望对你有帮助

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
for(String s :str)
{
}
这是一个高级for循环,其中str是循环的操作对象名,你这里没有指明,可以是一个数组也可以是一个集合。
s是这个数组或者集合中的元素, 该元素的数据类型为String。  该语句可以对数组或者集合中的元素进行取出操作,与传统for循环不同的一点就是 它必须有操作的对象(数组或者集合)

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1 赞一个!

查看全部评分

回复 使用道具 举报
如果问题得到解答,麻烦请及时重新编辑帖子,修改主题至“提问结束”。
回复 使用道具 举报
这个是for循环结构中的foreach循环结构,但是java中 “for” 和 “:”代替foreach ,它的结构如下:
1、迭代出来的数据类型
2、代表迭代出来的当前数据
3、需要迭代的数组
4、循环体
                for( 1 2 : 3 ){
                    4、循环体部分
                }
这个循环结构主要 用于执行不明确数组长度的时候遍历数组。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
JDK1.5加入的增强for和循环. 新特性
举个例子:(1)
   String[] number = {"1","2", "3", "4", "5","6" };
    for (String i : number) {
      System.out.print(i);
    }
//结果会是123456


等价于(2) //正常手段的遍历数组
   String[] number = {"1","2", "3", "4", "5","6" };
    for (int i=0; i < number.length; i++) {
      System.out.print( number[i]);
    }
或者更贴切是这样的:(3)
     String[] number = {"1","2", "3", "4", "5","6" };
    for (int i=0; i < number.length; i++) {
     String  j = number[i];// 这个j,就等价与(1)中的  i
      System.out.println(j);
    }
这个结合集合的概念和同样是JDK1.5加入的泛性,可以做到简化代码的作用

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
这里我所解释的是高级for循坏遍历单列集合(Collection)时,高级for循环只能获取集合的元素, 但是不能对集合进行操作, 而选代器在遍历集合时,还可以进行remove删除的动作,个人觉得遍历集合还是用选代器较好。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马