我是靠谱客的博主 平常雪碧,最近开发中收集的这篇文章主要介绍Java中for循环的几种用法1 常用的几种方法2 防止在循环体里修改循环变量3 类型相容问题4 循环变量的类型 可以是要被遍历的对象中的元素的 上级类型,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

参考一些博客整理的资料笔记,以备后续查看。

目录

1 常用的几种方法

1.1 for(; ; )

1.2 Collection for( Iterator i=kindsList.iterator(); i.hasNext(); )

1.3 for( : )

2 防止在循环体里修改循环变量

2.1 禁止重新赋值

2.2 允许修改状态

3 类型相容问题

3.1 使用和 要被遍历的数组 中的元素 相同类型的 循环变量

3.2 使用和 要被遍历的Collection 中的元素 相同类型的循环变量

4 循环变量的类型 可以是要被遍历的对象中的元素的 上级类型

4.1 使用要被遍历的对象中的元素的 上级类型的 循环变量

4.2 使用能和 要被遍历的对象中的元素的类型 自动转换的类型的 循环变量


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+" ");
}

最后

以上就是平常雪碧为你收集整理的Java中for循环的几种用法1 常用的几种方法2 防止在循环体里修改循环变量3 类型相容问题4 循环变量的类型 可以是要被遍历的对象中的元素的 上级类型的全部内容,希望文章能够帮你解决Java中for循环的几种用法1 常用的几种方法2 防止在循环体里修改循环变量3 类型相容问题4 循环变量的类型 可以是要被遍历的对象中的元素的 上级类型所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部