黄子涵

4.16 do-while 语句

do-while 语句是另一种循环语句,其语法结构如下所示。

// do-while 语句的语法结构

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

do-while 语句的条件表达式,和循环内部的语句、while 语句是相同的。

// do-while
do {
   console.log("黄子涵在循环之内");
}

while 语句与 do-while 语句的差别仅仅在于,是首先对条件表达式进行求值,还是首先执行语句。对于 while 语句,先对条件表达式进行求值,如果表达式的值为真,才执行循环部分的语句。之后将不断循环直至条件表达式的值变为假。

对于 do-while 语句,则首先执行循环部分的语句,之后才对条件表达式进行求值。之后同样会不断循环直至条件表达式的值变为假。

一旦循环开始,条件表达式的求值与循环内语句的执行就将会交替进行。因此如果非要界定 while 语句和 do-while 语句的差别,那就只有是否会进行最初的那一次条件表达式的求值而已。

在实际编程中,do-while 语句的使用并不多,主要使用 while 语句。其实,do-while 语句的使用模式只有以下两种。只要稍加调整,这两种情况也都能通过 while 语句来实现。

  • 如果循环内的语句不执行一次,条件表达式的求值就没有意义的情况。
  • 希望确保循环内的语句至少被执行一次的情况。

下面是一个使用 do-while 语句的具体示例。这是一个从右往左逐一显示参数所提供数值的字符的函数。如果输入的内容是123,则会依次输出 3、2、1。如果不使用 do-while 语句而是使用 while 语句来改写这一函数,当输入 0 时输出就会为空
。而使用了 do-while 之后,如果传递的参数是 0,则会输出 0。

// 使用 do-while 语句的例子
var hcq = 1921323493;
function hzhPrintNumberFromRight(hzh) {
    do {
        console.log(hzh % 10);
        hzh = ~~ (hzh / 10);
// 如果使用 hzh /= 10;的话结果将会是一个小数。
// ~~ 运算是一种可以把小数变为整数的巧妙方法        
    } while (hzh > 0);
}

hzhPrintNumberFromRight(hcq);
[Running] node "e:\HMV\JavaScript\JavaScript.js"
3
9
4
3
2
3
1
2
9
1

[Done] exited with code=0 in 0.179 seconds
posted @ 2022-05-31 10:45  黄子涵  阅读(130)  评论(0编辑  收藏  举报