JavaScript-流程控制语句 > 循环语句

for 循环

for 循环是一种前测试循环语句,在反复执行一段代码之前,都要先测试入口条件,如果条件为真,可以继续循环,如果条件为假,必须跳出循环不再执行。即反复执行一段代码直到测试条件为假时停止。

for (;;) { 
}

呆板的语法:

for (定义循环变量;变量的最大值或最小值;步长) {
     循环体;
}

这种解释只能涵盖 for 循环的一部分特殊结构,不能表示所有的 for 循环实现的情况。应该掌握 for 循环运行的一个轨迹、路径,去推导 for 循环运行的过程。



for 循环执行过程:遇到 for 循环,立即执行 ① 位置的语句,执行完毕后立即执行 ② 位置的语句,② 位置会强制得到一个 true 或 false的结果,如果为 true 表示入口条件为真,下一步执行 ③ 位置的语句,如果为 false 表示入口条件为假,不再往下执行,直接跳出循环执行后面的 ⑤ 位置的语句。

如果能够执行到 ③ 位置,③ 是一个结构体必须执行完毕,再执行 ④ 位置的语句,执行完毕后再执行 ② 位置的语句,回到了判断真假,如果为 true,继续执行 ③,再执行 ④……直到 ② 位置得到一个 false 的结果,循环结束跳出执行 ⑤。

注意事项

  1. 小括号内部必须有两个分号。
  2. for 循环 {} 后面不需要加分号。
  3. 如果 ② 位置语句不写,相当于没有设置入口条件,或者条件永远为真,没法限制什么时候停止循环了,出现死循环。
  4. ③ 位置是循环的结构体,每次进入循环都要执行完后,才能执行语句 ④,③ 位置的语句是可以人为自定义的,甚至可以书写 if 语句。
  5. for 循环嵌套 if 语句:表示既要能够执行循环,还要满足 if 语句的条件。
  6. for 循环嵌套 for 循环:外层循环执行一次,内层循环作为外层 ③ 位置的结构体,必须执行完所有的内层循环,才能进入外层循环下一次的 ④。循环内的变量是全局变量,必须避免循环嵌套时起相同的变量名,内层和外层变量名必须不同,常用的变量名 i,j,k。

do while 循环

do while 循环是一种后测试循环语句,会先执行一次结构体,执行完后才会去判断入口条件,如果条件为真能够继续下一次循环,如果条件为假跳出循环。

do {
      结构体;
} while(条件表达式);

do:做什么。后面是每次循环的循环体。
while:当……时候。
先执行一次循环体,然后当条件表达式为真时可以继续循环。

注意事项

  1. 如果循环中需要循环变量参与,循环变量必须定义在循环外面,否则会被重置。
  2. 循环变量自加的过程需要写在 {} 循环体内部。
  3. 如果将循环变量写在结构体内,i的初始值每次都会被重置,容易出现死循环。
  4. 变量自加过程写在输出语句前面和后面,结果是不同的。
  5. do while 循环即便条件第一次测试就为假,也会执行一次结构体。
  6. 至少会执行一次循环体。

while 循环

while 循环是一种前测试循环语句,在执行循环体之前都要测试入口条件,条件为真继续执行,条件为假直接跳出循环。

while (条件表达式) {
    循环体;
}

当条件表达式为真时,执行循环体,如果为假,跳出循环。

注意事项

  • 如果需要循环变量参与,必须定义在循环外部,避免被重置。
  • 循环变量自加的过程写在循环体内部。

总结

遇到必须先执行一次结构体的循环,使用 do while 循环。
先测试入口条件的循环,可以选择 for 循环或 while 循环。


break 语句

break 语句的作用可以立即停止当前的 for、do while、while 循环。
根据一些条件设置 break 位置,直到循环能够执行到 break 语句立即停止执行,跳出循环。

注意事项
break 如果没有特殊指示,只能停止自己所在的那一层循环,并不能终止外部循环。
如果想停止外层循环,可以给外层循环添加一个标签名 label,在内层循环的 break 关键字后面空格加一个 label 名。


continue 语句

遇到 continue 表示当前的一次循环数据不是我们想要的,会立即停止当前次的循环,立即进入下一次循环。

注意事项
要根据特殊条件设置 continue 的位置。continue 如果没有特殊指示只能进入自己的下一次循环,不能立即停止外层循环的这一次进入下一次。
控制外层循环的方式与 break 一样,都是添加外层的标签名。


break 和 continue 这两个语句的出现可以帮助我们大量的优化代码,减少了计算机的计算次数。


穷举思想

实际案例中,可能需要找到一些有规律的数据,但是计算机没办法自动智能筛选所要的数据,只能程序员自己书写一段代码,让计算机根据代码去进行筛选。
穷举思想:是一种解决问题的方法,将所有的需要数据所在的范围内所有的数据都一一列举出来,再根据规律的条件对所有这些数据进行筛选,这种方式就是穷举法。穷:穷尽,举:列举

  • for 循环:外层使用 for 循环进行一一列举。
  • if 语句:内层用 if 语句进行判断,筛选需要的数据,如果满足条件就操作数据,如果不满足条件跳过看下一次循环的数据。


    找到6的约数

累加器

有时候需要的不是每个数据是什么,需要得到所有数据的加和,必须想办法将所有的数据的和存起来,就用到了累加器。累加器本质就是变量。实现累加的效果,就是利用循环,每次循环就将新的数据加到原始的变量中去,赋值过程是一个加等于赋值。

  • 求 1-10 之间所有数字的和。

    注意事项
  • 累加器必须定义在循环外面的前面,如果定义在循环内部,每次循环都会将累加器重置,不能实现累加功能。
  • 累加器的初始值必须设置,而且必须设置为 0,不会影响累加结果。
  • 使用最终累加结果时,必须在 for 循环结束后的外面,如果写在循环内部,循环没结束,并不是最终需要的值。

累乘器

累乘器累积一些数据的乘积。与累加器非常类似。

  • 求 1 到 10 的累乘的乘积,也叫作 10!,阶乘。

    注意事项
  • 累乘器必须定义在循环外部前面。
  • 累乘器的初始值必须是 1,1 乘以任何数都等于本身。
  • 累乘器最终结果必须在 for 循环结束后使用。

你可能感兴趣的:(JavaScript-流程控制语句 > 循环语句)