3.2.1 while 循环语句
同其字面意思一致,while 就是当条件成立的时候,会去循环执行循环体内的逻辑。其用法格式如下:
while (boolean-expression) { statement; // 循环体 }
每次执行前,while 语句首先去判断执行表达式是否符合条件,只有条件符合才会进行一次循环体内的内容,执行完之后会继续判断该表达式是否符合继续循环的条件,以此往复,直到循环条件为假才跳出循环。
下面通过案例 3-5 来熟悉 while 语句的使用。
u案例 3-5 循环输出 1~10 运行结果如图 3-5 所示。
图 3-5 运行结果
案例中使用了 while 和 if-else 的嵌套逻辑。案例中,初始化了一个标记量 i,其值为 0,第一次判断其值是否小于 11,如果通过,则标记量加 1。然后判断当前值是否是偶数,如果是,则打印“**”,否则判断该值是否是 5,如果不是,则打印“##”,否则打印一串美元符号。一次逻辑结束后,会再次判断 i 的值是否小于 11,如果是,则继续循环,当 i=10 时,程序依然会进入循环体,此时 i=11,继续执行奇偶判断及若是奇数是否是 5 的判断,当该循环体执行结束进入下一次循环判断的时候,判断 i 是否小于 11 为假,循环跳出,程序结束。
在使用循环时,如果案例中使用了一个标记量来判断是否执行循环的逻辑,那么一定要注意该标记量的值变化是否符合预期。在案例 3-5 中,若移除了标记量的自增操作,则会导致程序一直运行下去,轻则消耗系统的资源,重则形成死循环。
3.2.2 do-while 循环语句
while 语句需要先判断条件是否满足,只有条件满足了才会走循环体内的逻辑,do-while 则与之有一些不同。
do-while 语句会先执行循环体内的逻辑,然后再判断逻辑是否满足条件。do-while 语句的格式如下:
do {
statement;
} while (boolean-expression);
对于那些无论条件是否成立,至少逻辑需要执行一次的任务,do-while 是最干净的处理方式。
下面通过案例 3-6 来说明 while 和 do-while 的不同。