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循环语句来编写代码。