【零基础学JS - 12 】javaScript中的for、while循环

👨‍💻 作者简介:程序员半夏 , 一名全栈程序员,擅长使用各种编程语言和框架,如JavaScript、React、Node.js、Java、Python、Django、MySQL等.专注于大前端与后端的硬核干货分享,同时是一个随缘更新的UP主. 你可以在各个平台找到我!
🏆 本文收录于专栏: 零基础学JavaScript,包含JavaScript 基础知识,DOM相关知识,高级知识点,最新ES特性
————————————————————————
🔥 热门专栏:

🥇 学透CSS: 全网阅读超百万,CSDN最强CSS专栏,精通CSS全属性,不做切图仔,从订阅本专栏开始!

🥇 SprinbBoot + Vue3 项目实战: 新鲜出炉的2023实战系列博客,配套视频,用心打磨,篇篇精品.持续更新,值得订阅!

在这里插入图片描述

JavaScript for循环

在编程中,循环用于重复一段代码。

例如,如果你想显示一条消息100次,则可以使用循环。这只是一个简单的例子;你可以使用循环实现更多功能。

for循环

for循环的语法如下:

for (initialExpression; condition; updateExpression) {
    // for循环体
}

在这里,

  • initialExpression初始化和/或声明变量,并仅执行一次。
  • condition条件。
  • 如果条件为false,则for循环终止。
  • 如果条件为true,则执行for循环内的代码块。
  • 当条件为true时,updateExpression更新initialExpression的值。
  • 条件再次被评估。这个过程一直持续,直到条件为false。

工作原理与流程图

Working of for loop in JavaScript with flowchart

示例1:显示文本五次

const n = 5;

for (let i = 1; i <= n; i++) {
    console.log(`I love JavaScript.`);
}

输出:

I love JavaScript.
I love JavaScript.
I love JavaScript.
I love JavaScript.
I love JavaScript.

这个程序的工作方式如下。

迭代变量条件:i <= n动作
1sti = 1
n = 5
true打印:I love JavaScript.
i增加到2
2ndi = 2
n = 5
true打印:I love JavaScript.
i增加到3
3rdi = 3
n = 5
true打印:I love JavaScript.
i增加到4
4thi = 4
n = 5
true打印:I love JavaScript.
i增加到5
5thi = 5
n = 5
true打印:I love JavaScript.
i增加到6
6thi = 6
n = 5
false退出循环

示例2:显示1到5的数字

const n = 5;


for (let i = 1; i <= n; i++) {
    console.log(i);    
}

输出:

1
2
3
4
5

这个程序的工作方式如下。

迭代变量条件:i <= n动作
1sti = 1
n = 5
true1
i增加到2
2ndi = 2
n = 5
true2
i增加到3
3rdi = 3
n = 5
true3
i增加到4
4thi = 4
n = 5
true4
i增加到5
5thi = 5
n = 5
true5
i增加到6
6thi = 6
n = 5
false退出循环

示例3:显示n个自然数的总和

let sum = 0;
const n = 100


for (let i = 1; i <= n; i++) {
    sum += i;  // sum = sum + i
}

console.log('sum:', sum);

输出:

sum: 5050

这里,sum的值最初为0。然后,从i = 1到100迭代for循环。在每次迭代中,将i添加到sum中,并将其值增加1。

当i变为101时,测试条件为false,sum将等于0 + 1 + 2 + … + 100。

将自然数的总和添加到上述程序也可以写成

let sum = 0;
const n = 100;


for(let i = n; i >= 1; i-- ) {
    sum += i; // sum = sum + i
}

console.log('sum:',sum);

这个程序也会产生与示例3相同的输出。在编程中,可以用许多不同的方式完成同样的任务;编程就是逻辑。

虽然这两种方法都是正确的,但你应该尝试使你的代码更易读。

JavaScript无限for循环

如果for循环中的测试条件始终为true,则它将永远运行(直到内存满)。例如,

for(let i = 1; i > 0; i++) {
}

在上面的程序中,条件始终为true,这将无限运行代码。

while 和 do…while 循环

while 循环

while 循环的语法是:

while (condition) {
    // 循环体
}

在这里,

  • while 循环评估括号内的条件。
  • 如果条件评估为 true,则执行 while 循环内的代码。
  • 条件再次评估。
  • 这个过程一直持续到条件为 false。
  • 当条件评估为 false 时,循环停止。

while 循环的流程图如下:

while 循环流程图

示例 1:显示从 1 到 5 的数字

// 程序显示从 1 到 5 的数字
// 初始化变量
let i = 1, n = 5;

// while 循环从 i = 1 到 5
while (i <= n) {
    console.log(i);
    i += 1;
}

输出:

1
2
3
4
5

这个程序的工作方式如下:

迭代次数变量条件: i <= n动作
1i = 1n = 5输出1,i增加到2
2i = 2n = 5输出2,i增加到3
3i = 3n = 5输出3,i增加到4
4i = 4n = 5输出4,i增加到5
5i = 5n = 5输出5,i增加到6
6i = 6n = 5条件不成立,循环结束

示例 2:正数之和

// 程序查找正数之和
// 如果用户输入负数,循环结束
// 输入的负数不会添加到总和中

let sum = 0;

// 从用户获取输入
let number = parseInt(prompt('输入一个数字:'));

while (number >= 0) {

    // 添加所有正数
    sum += number;

    // 如果数字是正数,则再次获取输入
    number = parseInt(prompt('输入一个数字:'));
}

// 显示总和
console.log(`总和为 ${sum}`);

输出:

输入一个数字:2
输入一个数字:5
输入一个数字:7
输入一个数字:0
输入一个数字:-3
总和为 14。

在上面的程序中,提示用户输入一个数字。

这里使用 parseInt(),因为 prompt() 接受用户输入作为字符串。当数值字符串相加时,它的行为像字符串。例如,‘2’ + ‘3’ = ‘23’。因此,parseInt() 将数值字符串转换为数字。

当用户输入负数时,while 循环继续。在每次迭代中,用户输入的数字添加到总和变量中。

当用户输入负数时,循环终止。最后,显示总和。

JavaScript do…while 循环

do…while 循环的语法是:

do {
    // 循环体
} while (condition)

在这里,

  • 首先执行循环体。然后评估条件。
  • 如果条件评估为 true,则再次执行 do 语句内的循环体。
  • 再次评估条件。
  • 如果条件评估为 true,则再次执行 do 语句内的循环体。
  • 这个过程一直持续到条件评估为 false。然后循环停止。

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

do…while 循环的流程图如下:

do...while 循环流程图

让我们看一下 do…while 循环的工作方式。

示例 3:显示从 1 到 5 的数字

// 程序显示数字
let i = 1;
const n = 5;

// do...while 循环从 1 到 5
do {
    console.log(i);
    i++;
} while (i <= n);

输出:

1
2
3
4
5

这个程序的工作方式如下:

迭代次数变量条件动作
1i = 1i <= n (5)输出1,i增加到2
2i = 2i <= n (5)输出2,i增加到3
3i = 3i <= n (5)输出3,i增加到4
4i = 4i <= n (5)输出4,i增加到5
5i = 5i <= n (5)输出5,i增加到6
6i = 6i <= n (5)条件不成立循环结束

示例 4:正数之和

// 查找正数之和
// 如果用户输入负数,循环终止
// 负数不会添加到总和中

let sum = 0;
let number = 0;

do {
    sum += number;
    number = parseInt(prompt('输入一个数字:'));
} while (number >= 0)

console.log(`总和为 ${sum}`);

输出 1:

输入一个数字:2
输入一个数字:4
输入一个数字:-500
总和为 6。

在上面的程序中,do…while 循环继续,直到用户输入负数。当数字为负数时,循环终止;负数不会添加到总和变量中。

输出 2:

输入一个数字:-80
总和为 0。

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

无限循环

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

// 无限 while 循环
while (true) {
    // 循环体
}

以下是一个无限 do…while 循环的示例。

// 无限 do...while 循环
const count = 1;
do {
   // 循环体
} while (count == 1)

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

for 循环 vs while 循环

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

// 这个循环迭代 5 次
for (let i = 1; i <= 5; ++i) {
   // 循环体
}

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

while (condition) {
    // 循环体
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YOLO大王

你的打赏,我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值