循环语句
循环语句主要分为for
循环和while
循环两种。for循环一般用在预先已经知道循环次数的情形(如要计算1+2+…+100的结果),而如果不能确定循环次数就需要使用while循环(如复制一个文件,但不知道文件的具体大小)。
简易for循环
for(参数初始化表达式; 条件表达式; 更新循环变量表达式) { //do something }
- for循环的括号中,用两个分号分隔出三个表达式
- 这三个表达式都是可选的,即是可以省略的。
- 第一个和第三个表达式可以是逗号表达式。
for (int i = 0, j = 0; i < 2; ++i, j = j + 2) { //do something }
continue 和 break
continue的作用是结束本次循环。即跳出循环体中下面尚未执行的语句。
– 对于while循环,继续判断循环条件是否成立。
– 对于for循环,执行for语句头中第三个表达式,然后判断循环条件是否成立。
break语句的则是结束整个循环过程,不再判断执行循环的条件是否成立。
值得注意的是,这两个关键字的作用对象是本层循环,在多层循环中, break语句只向外跳一层,continue语句也只是提前结束本层本次循环。
多层嵌套循环中的break
package cn.xiaobaidonghui.test; /** * 这是关于循环里的break用法 * 通常情况下break用于跳出当前层循环。当遇到嵌套循环时,怎么样能跳出外层循环呢。 * * @author baidonghui */ public class testBreak { public static void main(String[] args) { System.out.println(\"for1\"); for1(); System.out.println(\"for2\"); for2(); System.out.println(\"for3\"); for3(); } /** * 这是一个三层循环,每层循环变量为整数[0,3),在最内侧循环中当k取值为1时,跳出最内层循环。 */ public static void for1() { for(int i = 0; i < 3; i++) { for(int j = 0; j< 3;j++) { for(int k = 0; k <3; k ++) { System.out.println(i +\" \" + j + \" \" + k); if(k==1) { break; } } } } } /** * 本函数与 {@link #for1()}的区别是:为中间层循环加了标号,当最内层k=1时执行break LABEL_FOR,跳出中间层循环。 */ public static void for2() { for(int i = 0; i < 3; i++) { LABEL_FOR: for(int j = 0; j< 3;j++) { for(int k = 0; k <3; k ++) { System.out.println(i +\" \" + j + \" \" + k); if(k==1) { break LABEL_FOR; } } } } } /** * 本函数与 {@link #for1()}的区别是:为最外层循环加了标号,当最内层k=1时执行break LABEL_FOR,跳出最外层循环,函数退出。 */ public static void for3() { LABEL_FOR: for(int i = 0; i < 3; i++) { for(int j = 0; j< 3;j++) { for(int k = 0; k <3; k ++) { System.out.println(i +\" \" + j + \" \" + k); if(k==1) { break LABEL_FOR; } } } } } }
输出结果:
for1 0 0 0 0 0 1 0 1 0 0 1 1 0 2 0 0 2 1 1 0 0 1 0 1 1 1 0 1 1 1 1 2 0 1 2 1 2 0 0 2 0 1 2 1 0 2 1 1 2 2 0 2 2 1 for2 0 0 0 0 0 1 1 0 0 1 0 1 2 0 0 2 0 1 for3 0 0 0 0 0 1