4.6 do-while循环语句
与while循环不同,do-while循环将先执行一次循环体再计算条件表达式的值,所以不论条件表达式返回什么值,都将至少执行一次循环体,其语法为:
do{语句序列}while(条件表达式);
提示:花括号是可选的部分,如果没有,其语句序列中只能包含一句语句,否则编译报错。
其执行流程如图4-15所示。
![](https://epubservercos.yuewen.com/C81042/3590466604911401/epubprivate/OEBPS/Images/figure_0087_0001.jpg?sign=1739477479-0H3sWsIDLKCUvEm5TASc2dd09jkuqdT3-0-f164139a9f1b5e47ab5e461767d1f4f3)
图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所示。
![](https://epubservercos.yuewen.com/C81042/3590466604911401/epubprivate/OEBPS/Images/figure_0088_0001.jpg?sign=1739477479-W3GXJsALUGWJtL8oONUxDMbihZEzb0kF-0-4b5b6e356f0f728df447b9311ed4b47b)
图4-16 Sample4_6的编译运行结果
其执行流程如图4-17所示。
![](https://epubservercos.yuewen.com/C81042/3590466604911401/epubprivate/OEBPS/Images/figure_0088_0002.jpg?sign=1739477479-Oyt5lEEX62pehLitbavO56njX5ZIGzFI-0-4d335faa51bd91da8216c251edf5f92b)
图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退出循环。
· 读者可以看出,若不注意书写格式,将大大降低代码的可读性。