JavaScrip中的循环语句
循环语句
循环语句,也是流程控制语句中不可或缺的一种结构。在 JavaScrip中实现循环的方式有好几个一个来看
1.为什么需要循环
在具体介绍 Javascript中的循环之前,首先我们来明确一个问题,那就是为什么需要循环。这里举一个简单的例子,例如我们要设计一个程序,计算从1加到10的值,或许你会写
leti=1+2+3+4+5+6+7+8+9+10
console. log(i):
但是如果是从1加到100呢?或者是从1加到1000呢?显然这种方法就力不从心了。这个时候,就需要循环语句登场了。这里我们介绍 Javascript中的3种循环结构,while循环,do.while循环以及fo循环
2.while循环
while循环是循环里面比较常见的一种循环,语法如下:
while(表达式){
//循环体
}
含义:如果表达式成立,执行循环体,否则结束循环
无穷循环
所谓无穷循环,被称之为死循环。这是在我们无法退出循环时会遇到的一种情况。一般来讲我们在设计循环的时候需要为循环设计一个出口,这样才能在当不满足循环条件的时候退出循环。如果没有正确的对循环设计一个出口,那么循环语句将无法退出,陷入到无穷循环,也就是循环里面。所以我们在设计循环的时候,一定要注意正确的书写循环条件,以便循环能在执行一定次数以后退出。
3. do..while循环
首先执行一次循环体,然后检测循环条件表达式的值是否为"真”,如果是真的话,则重复执行循环语句
do..while环和前面两种循环语句略有区别,区别在于循环至少会执行一次
4.for循环
for循环是所有循环里最常见的一种循环;
它执行的顺序为:首先执行表达式1,然后进行表达式2的判断,如果表达式2成立,那么执行循环体,循环体执行结束后,进行表达式3,然后回头再看表达式是否成立,成立就执行循环体不成立该循环就结束。
在for循环里面,每一部分都是可选的。
遍历数组
在最早的时候,在JS里面就经常使用for循环进行遍历。
这里有一个小技巧,就是在使用fo循环来遍历数组的时候,使用一个变量来存储数组的长度,这样可以大大提升程序的效率,因为不用每次都去重新计算数组的长度。
5.循环的嵌套
我们可以把一个循环放在另外一个循环里面,从而构成循环的嵌套。里面的循环称之为内层循环,外面的循环称之为外层循环。外层循环每循环一次,内层循环就把自己的全部循环执行完
循环嵌套示例:打印九九乘法表
let str = "";
for(let i=1;i<=9;i++){
for(let j=1;j<=i;j++){
str += i + "*" + j + "=" + (i*j) + " ";
}
console.log(str);
str = "";
}
// 1*1=1
// 2*1=2 2*2=4
// 3*1=3 3*2=6 3*3=9
// 4*1=4 4*2=8 4*3=12 4*4=16
// 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
// 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
// 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
// 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
// 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
6. break和 continue
break
beak语句我们在前面讲 switch语句的时候已经见到过了,当时有讲到它的作用是跳出 switch语句或者循环语句。有一点需要注意的是: break语句不能直接作用于语句,除非这个语句是被嵌套在循环语句里面的
continue
结束本次循环不是终止整个循琍,即跳过循环体中 continue语句后面的语句,开始下一次循break语句和continue语句的区别:continue语句的意思是结束本次循环,bmak语句是结束整个
循环。
break和continue在默认情况下,是终止掉离它最近的循环。特殊情况下,我们可以通过给每个个名字,然后通过名字来终止指定循环。
去除重复,除了前面所介绍过的使用set集合来快速去除以外,在ES6之前,数组去重都需要开发人员自己来书写方法。这里我们就利用的是一种最简单的去重方式,用旧数组和新数组进行比较,如果新数组里面不含有旧数组里面的元素,则将此元素放入新的数组。当我们比较的时候,发现新数组里面已经存在此元素时,就直接 continue结束
外层的循环,进入外层循环的下一次循环。
JavaScrip中的循环语句的更多相关文章
- js中的循环语句
js中的循环语句可分为三种:1.while:2.do……while:3.for. while的语法为 while (exp) { //statements;} var a=1,b=0; whil ...
- shell脚本中select循环语句用法
shell脚本中select循环语句 1. 脚本中select的语法格式 select VAR in LIST do command1 command2 ... ... commandN done s ...
- 详解Python中的循环语句的用法
一.简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性.须重要理解,if.while.for以及与它们相搭配的 else. elif.break.continue和pass语句 ...
- Swift中的循环语句
循环语句能够使程序代码重复执行.Swift编程语言支持4种循环构造类型:while.do while.for和for in.for和while循环是在执行循环体之前测试循环条件,而do while是在 ...
- shell编程中的循环语句
while循环直接从文件中读取 while read line do command done < filename until循环 until 条件 do command done for循环 ...
- 洗礼灵魂,修炼python(10)--有趣的判断分支+从实例中掌握循环语句
所有的编程语言里都有判断语句和循环语句. 判断语句则是用来分支程序流程的 循环语句则是为了实现一个效果,让程序的规律性的重复操作 不用说,分支和循环自然在python里也是有的 一,条件判断:if,i ...
- Shell编程-08-Shell中的循环语句
目录 while语句 until语句 for语句 select语句 循环中断控制 循环语句总结 循环语句常用于重复执行一条命令或一组命令等,直到达到结束条件后,则终止执行.在Shell中常见的 ...
- Shell中的循环语句实例
1.for循环语句实例1.1 最基本的for循环 #!/bin/bash for x in one two three four do echo number $x done 注:" ...
- Oracle--存储过程中之循环语句
一般循环语句有两种: 1)使用for循环实现 declare cursor cur is select * from tablename; aw_row tablename%rowtyp ...
随机推荐
- k8s 映射 外部服务
把外部的服务,通过创建service和endpoint,把它映射到k8s内部来使用. 操作步骤: 在10.0.0.13上安装数据库 yum install mariadb-server -y syst ...
- 纯CSS3制作的“Ribbons”效果
在看具体每个demo之前,我们一起来看下面一个截图: 上图是一个典型的“Ribbons”各部位的示意图,但每一个“Ribbons”并不会都使用上图示意的各个部分,在下面的实例中大家可以明显的看 到或者 ...
- 03root密码设置
- 通过Matlab SDK 获取tushare数据
概要说明 版本要求:Matlab需要2016b及以上版本 接口说明:可以用help pro_api和help pro_bar查看 demo程序:请参考tushare_pro_test.m文件 程序包下 ...
- 2018-2-13-win10-uwp-上传Nuget-让别人用我们的库
title author date CreateTime categories win10 uwp 上传Nuget 让别人用我们的库 lindexi 2018-2-13 17:23:3 +0800 2 ...
- Algo: Majority Element
Approach #1 Brute Force Intuition We can exhaust the search space in quadratic time by checking w ...
- leetcode-40-组合总和②
题目描述: 方法一:回溯 class Solution: def combinationSum2(self, candidates: List[int], target: int) -> Lis ...
- MySQL回滚到某一时刻数据的方法
MySQL回滚到某一时刻数据的方法 对于有归档日志的数据库来说,原理上都具备全库回滚到之前某一时刻的能力.在这方面最好用的Orale数据库,使用Oracle数据库的RMAN工具,可以方便的 ...
- 训练计划Day1
Day1:二分答案,三分查找,快速幂,欧拉筛素数 | 题目:火星人,Bridge,GCD,Prime Path 二分答案 [JSOI 2008] 火星人 对于第一个操作用\(hash + 二分\)来求 ...
- Super OJ 序列计数
题意: 给出序列 a1,a2,--an(0≤ai≤109),求三元组(ai,aj,ak)(1≤i<j<k≤n)满足 ai<aj>ak 的数量. 分析: 开两个\(BIT\),分 ...