51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3958|回复: 1

java基础--循环控制语句

[复制链接]

该用户从未签到

发表于 2010-11-4 11:06:37 | 显示全部楼层 |阅读模式
java基础--循环控制语句

Java 私塾跟我学系列——JAVA 篇   网址:www.javass.cn

循环语句使语句或块的执行得以重复进行。Java 编程语言支持三种循环构造类型:for,while 和 do 循环。for 和 while 循环是在执行循环体之前测试循环条件,而 do 循环是在执行完循环体之后测试循环条件。这就意味着 for 和 while 循环可能连一次循环体都未执行,而 do 循环将至少执行一次循环体。

【1】 for 循环

for 循环的句法是:

for (初值表达式; boolean 测试表达式; 改变量表达式){
    语句或语句块


例如:

  1. for (int i = 0; i < 10; i++) {
  2.    System.out.println("Are you finished yet?");
  3. }
  4. System.out.println("Finally!");
复制代码
注意:for 语句里面的 3 个部分都可以省略,但是我们不建议这么做。

示例如下:

示例 1:就是一个无限循环

  1. public class Test {
  2.    public static void main(String[] args) {
  3.       for(;;){
  4.          System.out.println("Java私塾");
  5.       }
  6.    }
  7. }
复制代码
示例 2:可以省略部分

  1. public class Test {
  2.    public static void main(String[] args) {
  3.       for(int i=0;;){
  4.          System.out.println("Java私塾"+i);
  5.       }
  6.    }
  7. }
复制代码
示例 3:可以省略部分

  1. public class Test {
  2.    public static void main(String[] args) {
  3.       for(int i=0;i<3;){
  4.          System.out.println("Java私塾"+i);
  5.      }
  6.    }
  7. }
复制代码
示例 4:可以省略部分

  1. public class Test {
  2.    public static void main(String[] args) {
  3.       for(int i=0;;i++){
  4.          System.out.println("Java私塾"+i);
  5.       }
  6.    }
  7. }
复制代码
当然还有其他的组合方式,都是可以的。

【2】 while 循环

while 循环的句法是:

while  (布尔表达式) {
   语句或块


例如:

  1. int i = 0;
  2. while (i < 10) {  
  3.    System.out.println("Are you finished yet?");  
  4.    i++;  
  5. };  
  6. System.out.println("Finally!");
复制代码
请确认循环控制变量在循环体被开始执行之前已被正确初始化,并确认循环控制变量是真时,循环体才开始执行。控制变量必须被正确更新以防止死循环。

【3】do 循环

do 循环的句法是:

do {
   语句或块;
}while (布尔测试);

例如:

  1. int i = 0;
  2. do {  
  3.    System.out.println("Are you finished yet?");  
  4.    i++;  
  5. } while (i < 10);  
  6. System.out.println("Finally!");
复制代码
象 while 循环一样,请确认循环控制变量在循环体中被正确初始化和测试并被适时更新。作为一种编程惯例,for 循环一般用在那种循环次数事先可确定的情况,而 while 和 do用在那种循环次数事先不可确定的情况。

do 循环与 while 循环的不同这处在于,前者至少执行一次,而后者可能一次都不执行。

【4】 特殊循环流程控制

下列语句可被用在更深层次的控制循环语句中:

break [标注];

continue[标注];

label: 语句;//这里必须是任意的合法的语句;

break 语句被用来从 switch 语句、循环语句和预先给定了 label 的块中退出,跳出离 break 最近的循环。

continue 语句被用来略过并跳到循环体的结尾,终止本次循环,继续下一次循环。

label 可标识控制需要转换到的任何有效语句,它被用来标识循环构造的复合语句。它类似以前被人诟病的“goto”语句,我们应该尽量避免使用。

例 1:break 的使用

  1. public class Test {
  2.    public static void main(String[] args) {
  3.       for (int i = 0; i < 10; i++) {
  4.          if (i == 5) {
  5.             break;
  6.          }
  7.          System.out.println("i==" + i);
  8.       }
  9.    }
  10. }
复制代码
运行的结果:i==0 一直到 i==4

因为当 i==5 的时候,执行 break,跳出 for 循环。

例 2:continue 的使用

  1. public class Test {
  2.    public static void main(String[] args) {
  3.       for (int i = 0; i < 5; i++) {
  4.          if (i == 3) {
  5.             continue;
  6.          }
  7.          System.out.println("i==" + i);
  8.       }
  9.    }
  10. }
复制代码
运行的结果:i==0 一直到 i==4,就是不包括 i==3。因为当 i==3 的时候,执行 continue,终止本次循环,继续下一次循环。

例 3:label 的使用

  1. public class Test {
  2.    public static void main(String[] args) {
  3.       L: for (int i = 0; i < 5; i++) {
  4.          if (i == 3) {
  5.             break L;
  6.          }
  7.          System.out.println("i==" + i);
  8.       }
  9.    }
  10. }
复制代码
运行的结果是:i==0 一直到 i==2

例 4:label 的使用

  1. public class Test {
  2.    public static void main(String[] args) {
  3.       for (int i = 0; i < 5; i++) {
  4.          L:if (i == 3) {
  5.             break L;
  6.          }
  7.          System.out.println("i==" + i);
  8.       }
  9.    }
  10. }
复制代码
运行的结果是:i==0 一直到 i==4
回复

使用道具 举报

  • TA的每日心情
    擦汗
    2024-3-11 11:30
  • 签到天数: 534 天

    连续签到: 1 天

    [LV.9]测试副司令

    发表于 2011-1-6 10:22:03 | 显示全部楼层
    循环语句知道,具体怎么用不明白了,谢谢楼主的分享
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-3-29 23:02 , Processed in 0.078670 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表