for循环内初始化的问题。

goosman 2008-04-09 01:07:07

import java.io.*;
public class wrenwren
{
public static void main(String args[])
{
int a[] ={ 1,2,3};
for(int i: a){ //为什么这的i不初始化也能够编译过去.i=多少?为什么?
System.out.println(a[i-1]);
}
}
}
...全文
194 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
a15664153 2008-04-09
  • 打赏
  • 举报
回复
对象你不初始话编译器也会给你初始化的,内置类型都有确定的初始值,但是其他类对象就为null

楼主的代码好象刚好是一个巧合,循环里面i 分别等于1,2,3,所以a[i-1]才没出问题,

如果改了a[]的初始值为如3,4,5就会出问题了!

Kreocn 2008-04-09
  • 打赏
  • 举报
回复
....不是初始化了嘛....
java 1.5以上才有的 for(each) 语句,

for(Object obj:objs[x]) {
}
是建立一个循环,顺序吧objs[x]中的数据逐个赋值给obj,
直到objs[x]没有值可以给即到obj = objs[x-1]之后停止
goosman 2008-04-09
  • 打赏
  • 举报
回复
谢谢各位.结贴咯.
eatingbirdmiemies 2008-04-09
  • 打赏
  • 举报
回复
回6楼: 只有属性有默认咩
kevinchj 2008-04-09
  • 打赏
  • 举报
回复
这是JDK 5.0中所谓的“foreach”
用于遍历 数组 列表等。

ps:java中的int不初始化是可以的,默认是0。
haoxiongok 2008-04-09
  • 打赏
  • 举报
回复
这是JDK5.0的新特性,for循环里面指的是循环数组a里面的元素
eatingbirdmiemies 2008-04-09
  • 打赏
  • 举报
回复
回2楼,i!=0在你代码中3次i的值分别问a[0],a[1],a[2],即1,2,3;
i_saw_you 2008-04-09
  • 打赏
  • 举报
回复
jdk1.5的新特性 相当于
for(int i=0;i<a.lenth;i++){
i=a;
System.out.println(a[i-1]);
}
建议写成
for(int i: a){

System.out.println(i);
}
goosman 2008-04-09
  • 打赏
  • 举报
回复
[/Quote]
for(int i: a){ //为什么这的i不初始化也能够编译过去.i=多少?为什么?
System.out.println(a[i-1]); //按照你说的,应该是i初始为0嘛,那a[i-1]成什么了?
[/code]
eatingbirdmiemies 2008-04-09
  • 打赏
  • 举报
回复
for(int i:a){}
类似
for(int lgg201=0;lgg201<a.length;lgg201++)
{
int i = a[lgg201];
}
声明同时就初始化了的咩...

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧