JavaScript while 和 do...while 循环

    在本教程中,您将借助示例了解 while 循环和 do…while 循环。
    在编程中,循环用于重复一段代码。例如,如果您想显示一条消息 100 次,那么您可以使用循环。这只是一个简单的例子;你可以用循环实现更多。
    在上一教程中,您了解了JavaScript for 循环。在这里,您将了解while和do…while循环。

JavaScript while 循环

    while 循环的语法是:

while (condition) {
    // body of loop
}

    这里,

  1. while 循环计算括号()内的条件 condition。
  2. 如果条件 condition 的计算结果为 true,则执行 while 循环中的代码。
  3. 再次评估该条件 condition。
  4. 此过程将继续,直到条件 condition 为 false。
  5. 当条件 condition 的计算结果为 false 时,循环停止。

    要了解有关条件 condition 的更多信息,请访问JavaScript 比较和逻辑运算符

while 循环流程图

在这里插入图片描述

JavaScript while 循环流程图
示例 1:显示从 1 到 5 的数字
// program to display numbers from 1 to 5
// initialize the variable
let i = 1, n = 5;

// while loop from i = 1 to 5
while (i <= n) {
    console.log(i);
    i += 1;
}

    输出

1
2
3
4
5

    这是该程序的工作原理。

迭代次数变量条件:i <= n行为
1sti = 1
n = 5
true打印 1,i 增加到2。
2ndi = 2
n = 5
true打印 2,i 增加到3。
3rdi = 3
n = 5
true打印 3,i 增加到4。
4thi = 4
n = 5
true打印 4,i 增加到5。
5thi = 5
n = 5
true打印 5,i 增加到6。
6thi = 6
n = 5
false循环终止
示例 2:仅正数之和
// program to find the sum of positive numbers
// if the user enters a negative numbers, the loop ends
// the negative number entered is not added to sum

let sum = 0;

// take input from the user
let number = parseInt(prompt('Enter a number: '));

while(number >= 0) {

    // add all positive numbers
    sum += number;

    // take input again if the number is positive
    number = parseInt(prompt('Enter a number: '));
}

// display the sum
console.log(`The sum is ${sum}.`);

    输出

Enter a number: 2
Enter a number: 5
Enter a number: 7
Enter a number: 0
Enter a number: -3
The sum is 14.

    在上述程序中,会提示用户输入一个数字。
    这里使用 parseInt()是因为 prompt()将用户的输入作为字符串。当添加数字字符串时,它的行为就像一个字符串。例如,‘2’+‘3’=‘23’。因此 parseInt()将数字字符串转换为数字。
    while 循环将继续,直到用户输入负数。在每次迭代过程中,用户输入的数字被添加到 sum 变量中。
    当用户输入负数时,循环终止。最后,显示总数。

JavaScript do…while 循环

    do…while循环的语法是:

do {
    // body of loop
} while(condition)

    在这里,

  1. 首先执行循环体。然后对条件 condition 进行评估。
  2. 如果条件 condition 的计算结果为 true,则会再次执行 do 语句中的循环体。
  3. 再次评估该条件 condition。
  4. 如果条件 condition 的计算结果为 true,则会再次执行 do 语句中的循环体。
  5. 此过程将继续,直到条件 condition 评估为 false。然后循环停止。

    注意:do…while 循环类似于 while 循环。唯一的区别是在 do…while 循环中,循环体至少执行一次。

do…while 循环流程图

在这里插入图片描述

JavaScript do...while 循环流程图

    让我们看看 do…while 循环的工作原理。

示例 3:显示从 1 到 5 的数字
// program to display numbers
let i = 1;
const n = 5;

// do...while loop from 1 to 5
do {
    console.log(i);
    i++;
} while(i <= n);

    输出

1
2
3
4
5

    这是该程序的工作原理。

迭代次数变量条件:i <= n行为
i = 1
n = 5
未检查打印 1,i 增加到2。
1sti = 2
n = 5
true打印 2,i 增加到3。
2ndi = 3
n = 5
true打印 3,i 增加到4。
3rdi = 4
n = 5
true打印 4,i 增加到5。
4thi = 5
n = 5
true打印 5,i 增加到6。
5thi = 6
n = 5
false循环终止
示例 4:正数之和
// to find the sum of positive numbers
// if the user enters negative number, the loop terminates
// negative number is not added to sum

let sum = 0;
let number = 0;

do {
    sum += number;
    number = parseInt(prompt('Enter a number: '));
} while(number >= 0)

console.log(`The sum is ${sum}.`);

    输出1

Enter a number: 2
Enter a number: 4
Enter a number: -500
The sum is 6.

    在这里,do…while 循环继续,直到用户输入负数。当数字为负数时,循环终止;负数不会添加到 sum 变量中。
    输出 2

Enter a number: -80
The sum is 0.

    如果用户输入一个负数,do…while 循环体只运行一次。

无限 while 循环

    如果循环的条件始终为 true,则循环将运行无限次(直到内存已满)。例如,

// infinite while loop
while(true){
    // body of loop
}

    这是一个无限 do…while 循环的例子。

// infinite do...while loop
const count = 1;
do {
   // body of loop
} while(count == 1)

    在上述程序中,条件 condition 始终为 true。因此,循环体将运行无限次。

for VS while 循环

    当迭代次数已知时,通常使用 for 循环。例如,

// this loop is iterated 5 times
for (let i = 1; i <=5; ++i) {
   // body of loop
}

    当迭代次数未知时,通常使用 while 和 do…while 循环。例如,

while (condition) {
    // body of loop
}

上一教程JS for Loop                                         下一教程JS break

参考文档

[1] Parewa Labs Pvt. Ltd. (2022, January 1). Getting Started With JavaScript, from Parewa Labs Pvt. Ltd: https://www.programiz.com/javascript/while-loop

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值