1、数组的for循环
/** * 数组for循环 */ private static void test1() { int[] len = {1, 2, 3, 4, 5}; for (int i = 0; i < len.length;i++){ System.out.println(len[i]); } }
2、集合的for循环
private static void tets2() { ArrayList<Integer> list=new ArrayList<>(); list.add(1); list.add(2); list.add(3); list.add(4); for(int i=0;i<list.size();i++){ System.out.println(list.get(i)); } //超级for循环,无法读取下标 for(Integer s:list){ System.out.println(s); } }
3、迭代器循环
private static void test3() { Map<Integer,Integer> maps=new HashMap<Integer,Integer>(); maps.put(1,1); maps.put(1,2); maps.put(1,3); maps.put(1,4); // 1、通过key集合访问,对Key敢兴趣,可以访问与key对应的Value值; for(Integer k:maps.keySet()){ System.out.println(k+":"+maps.get(k)); } //2、通过value集合访问,只对value值感兴趣,无法访问key值; for(Integer value:maps.values()){ System.out.println(value); } // 3、通过Entry集合访问,对Entry感兴趣,可以访问与key对应的Value值 for(Map.Entry entry:maps.entrySet()){ System.out.println(entry.getKey()+":"+entry.getValue()); } //4、通过迭代Key集合访问Map集合,maps.keySet()返回的是一个Set<String>集合,Set直接继承Collection,所以可以对其进行迭代。 Iterator<Integer> iterator = maps.keySet().iterator(); while(iterator.hasNext()){ Integer key = iterator.next(); System.out.println(key+":"+maps.get(key)); } //5、通过迭代Values集合访问Map集合,maps.values()返回的是Collection<String>,所以可以对其迭代。 Iterator<Integer> iter= maps.values().iterator(); while(iter.hasNext()){ System.out.println(iter.next()); } // 6、通过迭代Entry集合访问Map集合,maps.entrySet()返回的是一个Set<Entry<String, String>>,Set直接继承Collection,所以可以对其迭代。 Iterator<Map.Entry<Integer, Integer>> it = maps.entrySet().iterator(); while(it.hasNext()){ Map.Entry<Integer, Integer> entry = it.next(); System.out.println(entry.getKey()+":"+entry.getValue()); } }
4、while循环
private static void test3() { int x=0; while(x<20){ System.out.println(x); x++; } }
5、do...while...(不同的是一个do ... while循环是保证至少执行一次)
//一个do ... while循环是保证至少执行一次 private static void test4() { int x=0; do{ System.out.println(x); x++; }while(x>20); }
6、for循环的break和continue,return
//for循环的控制流程 private static void test5() { for(int i=0;i<5;i++){ if(i==2){ System.out.println("i==2时忽略了"); continue;//忽略i==2时的循环 } System.out.println("当前i的值为"+i); } for(int i =0;i<5;i++){ System.out.println("当前i的值"+i); if(i==2){ return; //直接结束main()方法 } } for(int i =0;i<5;i++){ System.out.println("当前i的值"+i); if(i==2){ break; //直接结束for循环 } } bgm:for(int i=0;i<2;i++){ for(int j=0;j<4;j++){ System.out.println("当前i的值"+j); if(j==2){ System.out.println("当前j的值="+j); break bgm;//跳出外循环,给外循环起一个名字,然后使用break 名字 跳出外循环 } } } }
continue 关键字:
continue关键字可以在任一环的控制结构可以使用。它使循环立即跳转到循环的下一次迭代.
在for循环中,continue关键字会导致流程控制的立即跳转到更新语句。
在一个while循环或do/while循环,流控制的立即跳转到布尔表达式。
break关键字:
关键字break是用来停止整个循环。 break关键字必须使用任何循环或switch语句中。
关键字break将停止最内层循环的执行,并开始执行的下一行代码的程序段后。
return关键字:
return 关键字直接结束方法.