1. 简单的for循环
public static void main(String[] args) {
for (int i = 1, y = i + 10; i < 5 && y < 12; i++, y = i * 2) {
System.err.println("i=" + i + " y=" + y);
}
}
输出
i=1 y=11
i=2 y=4
i=3 y=6
i=4 y=8
2. Foreach语法
public static void main(String[] args) {
for (char a : "xunhuan".toCharArray()) {
// 所有数组格式 都可以这样循环
System.err.println(a);
}
}
输出
x
u
n
h
u
a
n
Foreach还支持所有实现Iterable接口的对象,Collection 接口继承了 Iterable接口,所以所有的List、Set、Queue接口的实现类(ArrayList、LinkedList、Vector、Stack、HashSet、TreeSet、LinkedHashSet、PriorityQueue),还有HashMap 中的keySet()、entrySet()方法(返回的是HashMap 中的一个实现Collection接口的内部类对象KeySet、EntrySet)都能用foreach循环; 也可以自己写一个类实现Iterable,照样可以用在foreach中。
public static class IterImpl implements Iterable<String> {
public String[] array = "dai ni zhuang bi dai ni fei".split(" ");
@Override
public Iterator<String> iterator() {
return new Iterator<String>() {
private int index = 0;
@Override
public boolean hasNext() {
return index < array.length;
}
@Override
public String next() {
return array[index++];
}
@Override
public void remove() {
}
};
}
}
public static void main(String[] args) {
for (String str : new IterImpl()) {
System.err.println(str);
}
}
输出:
dai
ni
zhuang
bi
dai
ni
fei
3. 无穷循环有两个 while(true) 和for(;;) 看自己习惯
4. 标签 ,就不进行文字叙述了,研究下面代码吧
public static void main(String[] args) {
outer: for (int y = 0; y < 10; y++) {
System.err.println("----〉y:" + y);
inner: for (int i = 0; i < 10; i++) {
System.err.println("i=" + i);
if (i == 0 && y == 0) {
System.err.println("continue");
continue;
}
if (i == 1 && y == 0) {
System.err.println("break");
break;
}
if (i == 2 && y < 2) {
System.err.println("continue inner ");
continue inner;
}
if (i == 3 && y < 2) {
System.err.println("continue outer ");
continue outer;
}
if (i == 4 && y < 3) {
System.err.println("break inner");
break inner;
}
if (i == 5) {
System.err.println("break outer");
break outer;
}
}
}
}
输出:
----〉y:0
i=0
continue
i=1
break
----〉y:1
i=0
i=1
i=2
continue inner
i=3
continue outer
----〉y:2
i=0
i=1
i=2
i=3
i=4
break inner
----〉y:3
i=0
i=1
i=2
i=3
i=4
i=5
break outer