Java开发手册
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.6 do-while循环语句

与while循环不同,do-while循环将先执行一次循环体再计算条件表达式的值,所以不论条件表达式返回什么值,都将至少执行一次循环体,其语法为:

    do{语句序列}while(条件表达式);

提示:花括号是可选的部分,如果没有,其语句序列中只能包含一句语句,否则编译报错。

其执行流程如图4-15所示。

图4-15 do-while循环的执行流程

如下代码说明了do-while循环的基本使用情况。

    1   //代码实现
    2   public class Sample4_6
    3   {
    4        public static void main(String args[])
    5        {
    6            int i=0;
    7            do
    8            {                             //循环体开始
    9                System.out.println(i);    //打印
    10               i++;
    11           }
    12           while(i<=10);                 //循环体末尾
    13       }
    14  }

注意: 一定要使用while表达式后的分号,它表示do-while循环语句的结束。

编译运行如上程序,其结果如图4-16所示。

图4-16 Sample4_6的编译运行结果

其执行流程如图4-17所示。

图4-17 Sample4_6 do-while循环的执行流程

若条件根本不成立,即返回false,那么代码也会执行一次,例如:

    1   int i=0;
    2   do
    3   {                             //循环体开始
    4        System.out.println(i);    //打印
    5        i++;
    6   }
    7   while(false);                 //循环体末尾

· 在上述代码中,表达式直接是false,条件不满足。

· 循环体内的语句将先执行一次,即打印“0”,并且i自增为1。下面介绍while与do-while联合使用的例子,代码如下。

    1   int i=0;
    2   do while(i<=10)
    3   {
    4        System.out.println(i);        //打印
    5        i++;
    6   }
    7   while(false);

· 其运行结果为打印1~10。

· 上述代码看起来有点费解,其实质是do-while循环内包含了while循环。

· 执行过程为,外层do-while循环将先执行一次循环体内的while循环,while循环打印10以内的整数后,经过do-while循环条件检查时,返回false退出循环。

· 读者可以看出,若不注意书写格式,将大大降低代码的可读性。