我是靠谱客的博主 活力冬天,最近开发中收集的这篇文章主要介绍for循环、增强for循环、迭代器1. for循环2. 增强for循环3. 迭代器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. for循环

for(初始化条件;终止条件;循环条件){

        循环体;

}

代码示例(一个完全用for循环打印输出的丑丑圣诞树): 

import java.util.Scanner;
public class Demo12 {
public static void main(String[] args) {
System.out.println("请输入要打印的圣诞树的叶子层数和树干高度:");
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
int y = scanner.nextInt();
/**
* 上部分for循环中,最外层控制树叶的层数 紧接着的for循环,控制每一层树叶的各个小层的树叶 再接下来的两个for循环,用于控制打印树叶
*
* 下部分for循环中,最外层控制树干的高度 紧接着的两个for循环,控制树干的宽度
*
* 如果输入 树叶层数为2
树干高度为2
*
* 打印第一层树叶的第一小层
* i=1 true
* j=1 true
*
k=1 true sout( ) k++
*
k=2 true sout( ) k++
*
k=3 true sout( ) k++
*
k=4 false
*
l=0 true sout(^ ) l--
*
l=-1 false sout(n)
*
j++
* 打印第一层树叶的第二小层
* j=2 true
*
k=2 true sout( ) k++
*
k=3 true sout( ) k++
*
k=4 false
*
l=1 true sout(^ ) l--
*
l=0 true sout(^ ) l--
*
l=-1 false sout(n)
*
j++
* 打印第一层树叶的第三小层
* j=3 true k=3 true sout( ) k++
*
k=4 false
*
l=2 true sout(^ ) l--
*
l=1 true sout(^ ) l--
*
l=0 true sout(^ ) l--
*
l=-1 false sout(n)
*
j++
* 进入第二层树叶的第一小层的打印
* j=4 false i++
*
* 打印第二层树叶的第一小层
* i=2 true
* j=2 true
*
k=1 true sout( ) k++
*
k=2 true sout( ) k++
*
k=3 true sout( ) k++
*
k=4 false
*
l=1 true sout(^ ) l--
*
l=0 true sout(^ ) l--
*
l=-1 false sout(n)
*
j++
* 打印第二层树叶的第二小层
* j=3 true
*
k=2 true sout( ) k++
*
k=3 true sout( ) k++
*
k=4 false
*
l=2 true sout(^ ) l--
*
l=1 true sout(^ ) l--
*
l=0 true sout(^ ) l--
*
l=-1 false sout(n)
*
j++
* 打印第二层树叶的第三小层
* j=4 true k=3 true sout( ) k++
*
k=4 false
*
l=3 true sout(^ ) l--
*
l=2 true sout(^ ) l--
*
l=1 true sout(^ ) l--
*
l=0 true sout(^ ) l--
*
l=-1 false sout(n)
*
j++
* 结束树叶的打印
* j=5 false i=3 false
*
* 进行树干的打印
* 新的for循环
* i=1 true
*
j=1 true sout( ) j++
*
j=2 true sout( ) j++
*
j=3 false
*
k=3 true sout(|) k++
*
k=4 true sout(|) k++
*
k=5 true sout(|) k++
*
k=6 false sout(n)
*
i++
* i=2 true
* j=1 true sout( ) j++
*
j=2 true sout( ) j++
*
j=3 false
*
k=3 true sout(|) k++
*
k=4 true sout(|) k++
*
k=5 true sout(|) k++
*
k=6 false sout(n)
*
i++
* i=3 false
*/
for (int i = 1; i <= x; i++) {
for (int j = i; j <= i + 2; j++) {
for (int k = j; k < x + 2; k++) {
System.out.print(" ");
}
for (int l = j - 1; l >= 0; l--) {
if (j==1) {
System.out.print("* ");
} else {
System.out.print("^ ");
}
}
System.out.println();
}
}
for (int i = 1; i <= y; i++) {
for (int j = 1; j < 3; j++) {
System.out.print(" ");
}
for (int k = 3; k <= (x + 2) * 2 - 3; k++) {
System.out.print("|");
}
System.out.println();
}
}
}

2. 增强for循环

for(包装类型 参数:集合的编译对象){

}

2.1 Collection接口

 代码示例:

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Demo01 {
public static void main(String[] args) {
Collection collection = new ArrayList();
collection.add("法外狂徒");
collection.add("张伟");
collection.add("马文才");
Object[] objects = collection.toArray();
for (int i = 0; i < collection.size(); i++) {
System.out.println(objects[i]);
}
for (Object o : collection) {
System.out.println(o);
}
Iterator<String> iterator = collection.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}

针对于集合的编译类型collection,上面的代码进行了三种方式的遍历。

2.2 List接口

代码示例:

import java.util.ArrayList;
import java.util.List;
public class Demo2 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王五");
System.out.println(list);
for (int i = 0; i < list.size(); i++) {
//通过索引获取元素
System.out.println(list.get(i));
}
}
}

List接口中存在get()方法,可以通过传入索引来返回元素。

3. 迭代器

需要先将集合的编译类型转换为iterator编译类型后才能使用

//正序输出

.hasNext()//判断光标下方是否还有值

.next()//返回光标下方的值,并将光标下移

//逆序输出

.hasPrevious()//判断光标上方是否还有值

.previous()//返回光标上方的值,并将光标上移

代码示例:

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class Demo3 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王五");
System.out.println(list);
ListIterator<String> sli = list.listIterator();
while (sli.hasNext()) {
System.out.println(sli.next());
}
//此时光标已经在最下面了
while (sli.hasPrevious()) {
System.out.println(sli.previous());
}
}
}

 

最后

以上就是活力冬天为你收集整理的for循环、增强for循环、迭代器1. for循环2. 增强for循环3. 迭代器的全部内容,希望文章能够帮你解决for循环、增强for循环、迭代器1. for循环2. 增强for循环3. 迭代器所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部