Java中 for循环的几种使用方法

1 常用的几种方法
1.1 for(; ; )

这个是最常用的方法,不多解释,看代码

// 建立一个数组
int[] data = new int[]{1,2,3,4};
// 开始遍历
for(int i=0;i<data.length;i++){
    int num = data[i];
    System.out.print(num+" ");
}
1.2 Collection for( Iterator i=kindsList.iterator(); i.hasNext(); )

java.util.Collection 是一个 集合接口(集合类的一个顶级接口),它提供了对集合对象进行基本操作的通用接口方法
Collection接口在Java 类库中有很多具体的实现,Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式
其中 Iterator 就是这个接口中的一种方法,叫 迭代器
i.hasNext() 方法返回值是 boolean类型,若为 true 则表示迭代器下一个有值,否则表示迭代完成;
i.next() 返回值是一个 object类型,表示 取出迭代器下一个值并赋值给“=”之前

代码示例

String[] stringData = new String[]{"A","B","C","D"};
Collection stringList = java.util.Arrays.asList(stringData);
// 开始遍历
for(Iterator itr = stringList.iterator();itr.hasNext();){
    Object str = itr.next();
    System.out.print(str+" ");
}
1.3 for( : )

for(int i:a)解释是:先设置一个与 a数组 里的元素相同的变量,这个变量先等于a数组的第一个元素,然后进入循环体,第二次循环就等于a数组的第二个元素,进入循环体,以此类推

代码示例:

// 建立一个数组
int[] data = new int[]{1,2,3,4};
// 开始遍历
for(int i:data){
    System.out.print(i+" ");
}

String[] stringData = new String[]{"A","B","C","D"};
Collection stringList = java.util.Arrays.asList(stringData);
// 开始遍历
for(Object str:stringList){
    System.out.print(str+" ");
}
2 防止在循环体里修改循环变量
2.1 禁止重新赋值
int[] data = new int[]{1,2,3,4};
for(final int i:data){
    i = i/2;  /* 编译时出错 */
}

这只是禁止了对循环变量进行重新赋值。给循环变量的属性赋值,或者 调用能让循环变量的内容变化的方法,是不被禁止的

2.2 允许修改状态
Random[] randoms = new Random[]{new Random(1),new Random(2),new Random(3)};
for(final Random r:randoms){
    r.setSeed(4); /* 将所有Random对象设成使用相同的种子 */
    System.out.print(r.nextLong()+" "); /* 种子相同,第一个结果也相同 */
}
// 运行结果:-4969378402838085704 -4969378402838085704 -4969378402838085704 
3 类型相容问题
3.1 使用和 要被遍历的数组 中的元素 相同类型的 循环变量
int[] data = new int[]{1,2,3,4};
// 开始遍历
for(int i:data){
    System.out.print(i+" ");
}
3.2 使用和 要被遍历的Collection 中的元素 相同类型的循环变量
Collection<String> stringData = new ArrayList<String>();
stringData.add("A");
stringData.add("B");
stringData.add("C");
stringData.add("D");
for(String str:stringData){
    System.out.print(str+" "); /* 依次输出“A”、“B”、“C”、“D” */
}
4 循环变量的类型 可以是要被遍历的对象中的元素的 上级类型

例如,用 int型 的循环变量来遍历一个 byte[]型 的数组,用 Object型 的循环变量来遍历一个Collection< String>(全部元素都是String的Collection)等
注意,这里说的 元素的类型,是 由要被遍历的对象的决定 的――如果它是一个 Object[]型 的数组,那么元素的类型就是Object,即使里面装的都是String对象也是如此

4.1 使用要被遍历的对象中的元素的 上级类型的 循环变量
String[] stringData = new String[]{"A","B","C","D"};
Collection stringList = java.util.Arrays.asList(stringData);
// 开始遍历
for(Object str:stringList){
    System.out.print(str+" ");
}
4.2 使用能和 要被遍历的对象中的元素的类型 自动转换的类型的 循环变量

一般写法

int[] data = new int[]{1,2,3,4};
for(int i:data){
    System.out.print(i+" ");
}

也可以这么写

int[] data = new int[]{1,2,3,4};
// 开始遍历
for(Integer i :data){
    System.out.print(i+" ");
}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值