JavaScript while 和 do...while 循环

x33g5p2x  于2022-04-11 转载在 Java  
字(3.2k)|赞(0)|评价(0)|浏览(355)

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

JavaScript while 循环

while 循环的语法是:

  1. while (condition) {
  2. // body of loop
  3. }

这里,

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

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

while 循环流程图

JavaScript while 循环流程图

示例 1:显示从 1 到 5 的数字
  1. // program to display numbers from 1 to 5
  2. // initialize the variable
  3. let i = 1, n = 5;
  4. // while loop from i = 1 to 5
  5. while (i <= n) {
  6. console.log(i);
  7. i += 1;
  8. }

输出

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

这是该程序的工作原理。

迭代次数变量条件:i <= n行为
1sti = 1 <br> n = 5true打印 1,i 增加到2。
2ndi = 2 <br> n = 5true打印 2,i 增加到3。
3rdi = 3 <br> n = 5true打印 3,i 增加到4。
4thi = 4 <br> n = 5true打印 4,i 增加到5。
5thi = 5 <br> n = 5true打印 5,i 增加到6。
6thi = 6 <br> n = 5false循环终止
示例 2:仅正数之和
  1. // program to find the sum of positive numbers
  2. // if the user enters a negative numbers, the loop ends
  3. // the negative number entered is not added to sum
  4. let sum = 0;
  5. // take input from the user
  6. let number = parseInt(prompt('Enter a number: '));
  7. while(number >= 0) {
  8. // add all positive numbers
  9. sum += number;
  10. // take input again if the number is positive
  11. number = parseInt(prompt('Enter a number: '));
  12. }
  13. // display the sum
  14. console.log(`The sum is ${sum}.`);

输出

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

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

JavaScript do…while 循环

do…while循环的语法是:

  1. do {
  2. // body of loop
  3. } 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 的数字
  1. // program to display numbers
  2. let i = 1;
  3. const n = 5;
  4. // do...while loop from 1 to 5
  5. do {
  6. console.log(i);
  7. i++;
  8. } while(i <= n);

输出

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

这是该程序的工作原理。

迭代次数变量条件:i <= n行为
i = 1 <br> n = 5未检查打印 1,i 增加到2。
1sti = 2 <br> n = 5true打印 2,i 增加到3。
2ndi = 3 <br> n = 5true打印 3,i 增加到4。
3rdi = 4 <br> n = 5true打印 4,i 增加到5。
4thi = 5 <br> n = 5true打印 5,i 增加到6。
5thi = 6 <br> n = 5false循环终止
示例 4:正数之和
  1. // to find the sum of positive numbers
  2. // if the user enters negative number, the loop terminates
  3. // negative number is not added to sum
  4. let sum = 0;
  5. let number = 0;
  6. do {
  7. sum += number;
  8. number = parseInt(prompt('Enter a number: '));
  9. } while(number >= 0)
  10. console.log(`The sum is ${sum}.`);

输出1

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

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

  1. Enter a number: -80
  2. The sum is 0.

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

无限 while 循环

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

  1. // infinite while loop
  2. while(true){
  3. // body of loop
  4. }

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

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

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

for VS while 循环

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

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

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

  1. while (condition) {
  2. // body of loop
  3. }

上一教程 :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

相关文章

最新文章

更多