4.3.3 do……while语句

在学习do……while语句之前,先清楚while语句是如何工作的。while语句是先进行条件判断,再执行大括号内的循环体。do……while语句与while语句不同的是,它先执行大括号内的循环体,再判断条件,如果条件不满足,下次不再执行循环体。也就是说,在判断条件之前,就已经执行大括号内的循环体。

【实例4.13】下面先看一个程序段。


01 ///通过先判断这个数是否是3的倍数,并且是否是5的倍数

02 ///再判断是否是9的倍数

03 ///最后判断是否在100以内

04 public class control10

05 {

06 public static void main(String[]args)

07 {

08 int x=1;

09 do

10 {

11 if((3*x)%5!=0)

12 {

13 if((3*x)%9!=0)

14 {System.out.println(3*x);}

15 }

16 x++;

17 }

18 while(((3x>1)&&(3x<100)));

19 }

20 }

【运行效果】


3 6

12 21

24 33

39 42

48 51

57 66

69 78

84 87

93 96


【代码说明】从上面的程序段输出结果可以看出,与使用while语句的输出结果是一样的,为什么会是一样的呢?下面来分析:

当“x=33”时,先不会检验“333=99”是否小于100,而会先执行大括号内的循环体。当检测到99是9的倍数时,条件是“false”,于是就会退出条件语句,继续执行“x”自加1表达式,于是“x”变成了34,由于“343=102”大于100,所以结束循环体。因此程序执行到“x=32”后就无输出了,最后输出的结果当然和while语句的输出一样。

其实在实际程序开发中,不经常使用do……while循环语句。因为这种语句是先执行循环体再检测条件,所以会有一些危险数据不经检测,就会被执行。建议使用while语句或者for循环语句来编写代码。