七 (2) 2. 循环控制语句 循环语句使语句或块的执行得以重复进行。 Java编程语言支持三种循环构造类型:for, while和do 循环。 for和while循环是在执行循环体之前测试循环条件,而do 循环是在执行完循环体之后测试循环条件。这就意味着for和while循环可能连一次循环体都未执行, 而do 循环将至少执行一次循环体。
2.1 for循环 for循环的句法是: for (初值表达式; boolean 测试表达式; 改变量表达式){ 语句或语句块 } 例如: for (int i = 0; i < 10; i++) { System.out.println("Are you finished yet?"); } System.out.println("Finally!"); 注意:for语句里面的3个部分都可以省略,但是我们不建议这么做。 示例如下: 示例1:就是一个无限循环 public class Test { public static void main(String[] args) { for(;;){ System.out.println("Java私塾"); } } } 示例2:可以省略部分 public class Test { public static void main(String[] args) { for(inti=0;;){ System.out.println("Java私塾"+i); } } } 示例3:可以省略部分 public class Test { public static void main(String[] args) { for(int i=0;i<3;){ System.out.println("Java私塾"+i); } } } 示例4:可以省略部分 public class Test { public static void main(String[] args) { for(int i=0;;i++){ System.out.println("Java私塾"+i); } } } 当然还有其他的组合方式,都是可以的。 2.2 while循环 while循环的句法是: while (布尔表达式) { 语句序列 } 例如: int i = 0; while (i < 10) { System.out.println("Are you finished yet?"); i++; } System.out.println("Finally!"); 请确认循环控制变量在循环体被开始执行之前已被正确初始化,并确认循环控制变量是真时,循环体才开始执行。控制变量必须被正确更新以防止死循环。 2.3 do循环 do循环的句法是: do { 语句或块; }while (布尔表达式); //此处结束的分号;必须要,否则编译出错 例如: int i = 0; do { System.out.println("Are you finished yet?"); i++; } while (i < 10); System.out.println("Finally!"); 象while循环一样,请确认循环控制变量在循环体中被正确初始化和测试并被适时更新。作为一种编程惯例,for循环一般用在那种循环次数事先可确定的情况,而while和do用在那种循环次数事先不可确定的情况。 do循环与while循环的不同这处在于,前者至少执行一次,而后者可能一次都不执行。 2.4 特殊循环流程控制 下列语句可被用在更深层次的控制循环语句中: l break [标注]; //方括号表示可选的成分 l continue[标注]; l label: 语句; //这里必须是任意的合法的语句 break语句被用来从switch语句、循环语句和预先给定了label的块中退出,跳出离break最近的循环(最里层循环)。 continue语句被用来略过并跳到循环体的结尾,终止本次循环,继续下一次循环。 label可标识控制需要转换到的任何有效语句,它被用来标识循环构造的复合语句。它类似以前被人诟病的“goto”语句,我们应该尽量避免使用。 例1:break的使用 public class Test { public static void main(String[] args) { for (int i = 0; i < 10; i++) { if (i == 5) { break; } System.out.println("i==" + i); } } } 运行的结果:i==0一直到i==4 因为当i==5的时候,执行break,跳出for循环。
例2:continue的使用 public class Test { public static void main(String[] args) { for (int i = 0; i < 5; i++) { if (i == 3) { continue; } System.out.println("i==" + i); } } } 运行的结果:i==0一直到i==4,就是不包括i==3。因为当i==3的时候,执行continue,终止本次循环,继续下一次循环。例3:label的使用 public class Test { public static void main(String[] args) { L: for (int i = 0; i < 5; i++) { if (i == 3) { break L; } System.out.println("i==" + i); } } } 运行的结果是:i==0一直到i==2 Java私塾跟我学系列——JAVA篇 网址:http://www.javass.cn 电话:010-68434236 |