欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java循环标签 Foreach

程序员文章站 2022-05-10 16:47:12
...

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