您的位置 首页 > 娱乐休闲

JavaScript For循环之谜


> A photo by etienneblg on Unsplash

您真的知道简单的for循环的功能吗? 问题是您真的知道如何执行for循环吗?

对于每个开发人员每天都以无数种方式使用循环的方式,循环至关重要。 如果满足指定条件,则For循环多次执行代码块。

尽管Javascript已经包含了不同类型的循环,但是这里的主要重点将是通过许多步骤来学习基本for循环的功能。 主要目标是真正了解for循环的构造,执行和迭代阶段。

如MDN中所述,for语句创建一个循环,该循环由三个可选表达式组成,并用括号括起来并用分号分隔,然后是要在循环中执行的语句(通常为block语句)。

for循环中的第一个表达式块(块1)代表初始阶段,就在循环开始执行之前。 在此阶段,请执行提供参数声明之类的初始条件所需的一切。 传统上,您习惯于在此处初始化本地计数器变量以递增或递减,但是您所能做的还不止于此。 在此阶段可以定义任何块作用域变量。

第二个表达式块(块2)包含条件,该条件导致在计算结果为true时执行该语句。 一旦条件评估为false,执行将在for循环之后跳至以下表达式。 请注意,条件表达式可以表示为真实值和虚假值。

第三个表达式块(块3)在当前迭代结束时执行,在此阶段,您习惯于递增或递减计数器值。

如果我们可以根据其执行顺序可视化整个迭代过程,那么情况将如下所示:

步骤0是初始阶段,在for循环开始时仅执行一次。 在初始化过程之后,将按照以下顺序实现每次迭代:

步骤1是进行条件评估的地方。 如果为真,则执行该语句(步骤2)。 最终表达式仅在当前迭代的末尾求值(第3步)。 继续进行此过程,直到条件评估为虚假值为止。

步骤2是执行语句的地方。 for循环中的语句可以通过两种方式编写,一种是使用块{…}对多个语句进行分组,而后者是在for表达式之后使用单个语句。 检查以下一些方法:

如果需要,步骤3可能会包含更多操作。 可以使用Java的逗号运算符对表达式进行分组。

开发人员中的一个常见错误是不将重点放在增量/减量计数器值上,这样它就被忽略是发布还是发布。 请记住,后增量在返回值之后递增,而前增量在之前返回。

后期和前置递增/递减可在每个块中使用。 在每个循环中显示所有对应的值之后,请检查以下示例。

从某种意义上来说,for循环非常强大,因为当用作单线时,整个表达式可以非常简洁。 检查以下示例,以演示使用非常短的语法可以完成多少操作。

如果我们分析上面的示例5,则每个周期的图表将反映为:

> Iteration Analysis of Example 5

既然您已经了解了for循环的基本知识及其在编写单行代码和处理复杂问题时的强大功能,那么您应该已经准备好应对软件界的一个著名问题。 Fizz Buzz问题…

实际上,正如wiki.c2.com所说,Fizz Buzz测试的统计数据表明应聘者的软件失败率为99.5%。 如果您还没有听说过这项测试,那就来了。 尝试使用自己的知识来解决它。 挑战如下:

编写一个程序,打印从1到100的数字。但是,对于三个打印数字" Fizz"(而不是数字)的倍数,以及五个打印"嗡嗡声"的倍数。 对于三个和五个的倍数的数字,请打印" FizzBuzz"。

您现在应该会感到兴奋,在这里稍事休息,然后开始编写算法…

再次欢迎您,因为wiki.c2.com链接中已经提供了解决方案,所以您应该以自己的方式来解决问题。

以下是最短的带头解决方案,请尝试理解它们。

希望您真的了解for循环的运行方式,并且从现在开始您将在另一个见解中看到这个问题。 作为软件开发人员,我们确实必须了解for循环背后的逻辑,因为它们是我们日常编写程序的基本构建块。

(本文翻译自Abdullah Sunça的文章《Mystery of For Loops in Javascript》,参考:)

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“js如何跳出for循环,js跳出for循环语句,js跳出双层for循环,js怎么跳出for循环”边界阅读