黑马程序员技术交流社区
标题:
关于FOR循环的问题。。。
[打印本页]
作者:
一帆风顺
时间:
2012-9-19 12:22
标题:
关于FOR循环的问题。。。
本帖最后由 王博 于 2012-9-21 18:44 编辑
今天看了一个题,可是有部分不明白啊
class ForDemo
{
public static void main(String[] args)
{
int sum=0;
int [] a=new int[200]; //初始化数组
for (int i=0;i<200 ;i++ )
{
a
=i+1;
}
for(int k:a) //想问一下,这句话是什么意思啊?也是For循环么?我的理解是k从数组a中一次去一个元素然后循环求和////不是很明白啊。。。
{
sum+=k;
}
System.out.println("The averge is "+(double)sum/a.length);
}
}
作者:
尤圣回
时间:
2012-9-19 12:23
增强for循环
作者:
徐传任
时间:
2012-9-19 12:24
这是一个增强for,用于遍历a数组中的值
作者:
赵宇
时间:
2012-9-19 12:27
增强的for循环,就是遍历a数组,你理解的没错。网上找了个例子,共同学习。
增强型的for循环 优点主要体现在集合中,随便举个例子
比如对 set 的遍历
一般是迭代遍历:
Set<String> set = new HashSet<String>();
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String str = it.next();
System.out.println(str);
}
for循环遍历:
for (String str : set) {
System.out.println(str);
}
是不是简单些?
优点还体现在泛型 假如 set中存放的是Object
Set<Object> set = new HashSet<Object>();
for循环遍历:
for (Object obj: set) {
if(obj instanceof Integer){
int aa= (Integer)obj;
}else if(obj instanceof String){
String aa = (String)obj
}
........
}
如果你用Iterator遍历,那就晕了
map list 也一样
唯一的缺点就是 在遍历 集合过程中,不能对集合本身进行操作
for (String str : set) {
set.remove(str);//错误!
}
作者:
黑马杨晨
时间:
2012-9-19 12:31
QQ截图20120919123033.jpg
(85.75 KB, 下载次数: 30)
下载附件
2012-9-19 12:31 上传
这是高级for循环,毕老师java基础教程,第17天,第18个视频有讲解。
JDK1.5中增加了增强的for循环。
缺点:
对于数组,不能方便的访问下标值;
对于集合,与使用Interator相比,不能方便的删除集合中的内容(在内部也是调用Interator).
除了简单遍历并读取其中的内容外,不建议使用增强的for循环。
一、遍历数组
语法为:
for (Type value : array) {
expression value;
}
//以前我们这样写:
void someFunction ()
{
int[] array = {1,2,5,8,9};
int total = 0;
for (int i = 0; i < array.length; i++)
{
total += array
;
}
System.out.println(total);
}
//现在我们只需这样写(和以上写法是等价的):
void someFunction ()
{
int[] array = {1,2,5,8,9};
int total = 0;
for (int n : array)
{
total += n;
}
System.out.println(total);
}
作者:
陈俊来
时间:
2012-9-19 14:18
for(int k:a) {
sum+=k;
}
for循环增强, for(int k:a) { }
k是每次遍历集合a的时候取出来的值,
作者:
翁鹏
时间:
2012-9-19 15:04
本帖最后由 翁鹏 于 2012-9-19 15:06 编辑
for(int k:a) //
把 a数组 中的的 int类型的值 赋予给 int类型变量k, 赋值一次(迭代一次),执行一下语句。 增强型FOR循环
。
{
sum+=k;
}
作者:
班志国
时间:
2012-9-19 15:52
这是一个 增强for循环
作者:
彭旭文
时间:
2012-9-19 17:13
本帖最后由 Leo.Peng 于 2012-9-19 17:15 编辑
这是一个增强型For循环,至于具体用法,希望楼主可以去百度一下...呵呵!{:soso_e120:}加油哦!
作者:
赵永康
时间:
2012-9-19 17:22
for(int k:a)
这是一个超级for循环,因为是上面定义数组时int[] a=new int[200];
你创建的是int型的数组,所以在用超级for循环的时候,自定义变量的类型就是int 的 k是你所起的变量的名字,可以随意的写,a是你定义的数组的名字。
然后循环里面的就是你在取存入数组中的元素并和sum相加。
假如你定义的是字符串数组 例如 String[] strs=new String[]{"ds","das"};这个时候你的超级for循环就应该写成for(String str:strs){}
将的不是很清楚,希望能明白
作者:
李泽巍
时间:
2012-9-19 17:25
这是一个增强for循环(foreach循环),主要用于遍历数组
foreach语法如下:
for(type variableName : array | collection)
{
//variableName自动迭代访问每一个元素
}
复制代码
for(int k : a)和for(int i = 0; i<a.length(); i++){int k = a
;}实现的功能是一样的,遍历数组用foreach明显更加方便,需要注意的是foreach是不能给循环变量赋值的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2