TypeScript(六) 循环语句

1. TypeScript循环语句

1.1. 简述

  有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。
  循环语句允许我们多次执行一个语句或语句组。

1.2. for循环

  for循环用于多次执行一个语句序列,简化管理循环变量的代码。
语法:

for (init; condition; increment) {// 循环执行代码块
}

参数说明:
(1)init会首先执行,且只会执行一次,这一步允许您声明并初始化任何循环控制变量。
(2)之后,会判断condition。如果是true,则执行循环主体。如果是false,则不执行循环主体。且控制流会跳转到紧接着for循环下一条语句。
(3)在执行完for循环主体后,控制流会跳回上面的increment语句。该语句允许您更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。
(4)条件再次被判断,如果为true,则执行循环,这个过程是不断重复的。一直到条件变为false时,for循环终止。
实例:

for (init; condition; increment) {// 循环执行代码块
}
var num:number = 5; 
var i:number; 
var factorial = 1; 
for(i = num;i>=1;i--) {factorial *= i;
}
console.log(factorial)

执行结果:120

1.3. for…in循环

  For…in语句用于一组值的集合或者列表进行迭代输出。
语法:

for (var val in list) {// 语句
}

  val需要为string或any类型
实例

    var j;var n:any = "a b c";for ( j in n) {console.log(n[j]);}

执行结果:
在这里插入图片描述

1.4. for…of 、forEach、every 和 some 循环

  for…of 语句创建一个循环来迭代可迭代的对象。在 ES6 中引入的 for…of 循环,以替代 for…in 和 forEach() ,并支持新的迭代协议。for…of 允许你遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等可迭代的数据结构等。
实例:

let someArray = [1, "string", false];
for (let entry of someArray) {console.log(entry); // 1, "string", false
}

  forEach、every 和 some 是 JavaScript 的循环语法,TypeScript 作为 JavaScript 的语法超集,当然默认也是支持的。
  因为 forEach 在 iteration 中是无法返回的,所以可以使用 every 和 some 来取代 forEach。
实例:

let list = [4, 5, 6];
list.forEach((val, idx, array) => {// val: 当前值// idx:当前index// array: Array
});

1.5. while循环

  while语句在给定条件为true时,重复执行语句或者语句组。循环主体执行之前会先测试条件。
语法:

while(condition) {statement(s);
}

实例:

    var num: number = 5;var factorial: number = 1;while (num >= 1) {factorial = factorial * num;num--;}console.log("5 的阶乘为:" + factorial);

执行结果:
在这里插入图片描述

1.6. do…while循环

  它不像for和while循环,它们是在循环头部测试循环条件。do…while循环是在循环的尾部检查它的条件。
语法:

do {statement(s);
} while ( condition );

  注意:条件表达式出现在循环的尾部,所以循环中的 statement(s) 会在条件被测试之前至少执行一次。
   如果条件为 true,控制流会跳转回上面的 do,然后重新执行循环中的 statement(s)。这个过程会不断重复,直到给定条件变为 false 为止。
实例:

var num:number = 5;var n = 10;do {console.log(n);n--;} while (n >= 0);;

执行结果
在这里插入图片描述

1.7.break语句

  break语句有以下两种:
  当break语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句
  它可用于终止switch语句中的一个case
语法:

break;

实例:

 var i :number= 1;while (i <= 10) {if (i % 5 == 0) {console.log("在 1~10 之间第一个被 5 整除的数为 : " + i);break; // 找到一个后退出循环}i++;} // 输出 5 然后程序执行结束;

执行结果:
在这里插入图片描述

1.8. continue语句

  continue语句有点像break语句。但是它不强制终止,continue会跳过当前循环中的代码,强迫开始下一次循环。
  对于 for 循环,continue 语句执行后自增语句仍然会执行。对于 while 和 do…while 循环,continue 语句是重新执行条件判断语句。
语法:

continue;

实例:

 var num:number = 0;var count:number = 0;for (num = 0; num <= 20; num++) {if (num % 2 == 0) {continue;}count++;}console.log("0 ~20 之间的奇数个数为: " + count); //输出 10

执行结果:
在这里插入图片描述

1.9. 无限循环

  无限循环就是一直在运行不会停止的循环。 for 和 while 循环都可以创建无限循环。
语法:

for(;;) { // 语句
}

实例:

for(;;) { console.log("这段代码会不停的执行") 
}
while(true) { // 语句
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/656640.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#需要学到什么程度才能做MES系统开发工作?

C#需要学到什么程度才能做MES系统开发工作&#xff1f; 在开始前我分享下我的经历&#xff0c;刚入行时遇到一个好公司和师父&#xff0c;给了我机会&#xff0c;两年时间从3k薪资涨到18k的&#xff0c; 我师父给了一些C#学习方法和资料&#xff0c;让我不断提升自己&#xff…

GNSS定位技术总结与PPP定位技术

1.统一观测值方程 2.PPP方程构建 站间单差方程如下&#xff1a; 同样的&#xff0c;设计矩阵也更加庞大&#xff1a; 站间单差消除了卫星轨道、卫星钟、电离层、对流层以及卫星端的伪距和载波硬件延迟的影响。但在PPP中&#xff0c;我们无法通过站间单差消除这些影响&#xff…

MySQL安全(二)SQL注入

一、概述&#xff1a; 1、介绍 SQL注入就是指Web应用程序对用户输入数据的合理性没有进行判断&#xff0c;前端传入后端的参数是攻击者可控制的&#xff0c;并且根据参数带入数据库查询&#xff0c;攻击者可以通过构造不同的SQL语句来对数据库进行任意查询。 2、SQL注入的条…

【Lazy ORM 整合druid 实现mysql监控】

Lazy ORM 整合druid 实现mysql监控 JDK 17 Lazy ORM框架地址 up、up欢迎start、issues 当前项目案例地址 框架版本描述spring-boot3.0.7springboot框架wu-framework-web1.2.2-JDK17-SNAPSHOTweb容器Lazy -ORM1.2.2-JDK17-SNAPSHOTORMmysql-connector-j8.0.33mysql驱动druid-…

四、ES集群安全策略设置 X-pack

本文主要是结合ES集群搭建时使用&#xff0c;并且适用于ES7.x以上版本 背景及安全策略方案对比 ES 7.x以下版本默认几乎没有任何安全策略&#xff0c;如果集群IP、端口被暴露&#xff0c;在可访问的情况下任何用户都可以对索引进行管理以及数据的增删改查等&#xff0c;基于此需…

如何使用docker快速安装Plik并实现固定公网地址远程访问

文章目录 推荐1. Docker部署Plik2. 本地访问Plik3. Linux安装Cpolar4. 配置Plik公网地址5. 远程访问Plik6. 固定Plik公网地址7. 固定地址访问Plik 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点…

GitCode|部分项目开源代码

1.EasyKeyboard 基于MFC的简单软键盘&#xff0c;使用vs2017开发 PangCoder / EasyKeyboard GitCode基于Windows平台的软键盘&#xff0c;使用VS2017开发&#xff0c;使用MFC框架https://gitcode.net/qq_36251561/easykeyboard 2.EncoderSimulator 基于WPF应用的编码器模拟工…

Acwing---792. 高精度减法

高精度减法 1.题目2.基本思想3.代码实现4.总结 1.题目 给定两个正整数&#xff08;不含前导 0&#xff09;&#xff0c;计算它们的差&#xff0c;计算结果可能为负数。 输入格式 共两行&#xff0c;每行包含一个整数。 输出格式 共一行&#xff0c;包含所求的差。 数据范围…

数论与图论

数论&#x1f388; 筛质数 最普通的筛法O(nlogn)&#xff1a; void get_primes2(){for(int i2;i<n;i){if(!st[i]) primes[cnt]i;//把素数存起来for(int ji;j<n;ji){//不管是合数还是质数&#xff0c;都用来筛掉后面它的倍数st[j]true;}} } 诶氏筛法 O(nloglogn)&#…

wordpress连接azure MySQL

申请了免费试用Azure mysql&#xff0c;机器名mysql8-wordpress.mysql.database.azure.com&#xff0c;修改wordpress配置 wp-config.php /** Database username */ define( DB_USER, myblog ); /** Database password */ define( DB_PASSWORD, password ); /** Database h…

Qt知识点总结

将枚举类型转换为字符串 这里使用的在网络编程中&#xff0c;获取socket状态并显示的时候&#xff0c;遇到的一个问题 #include <QMetaEnum>// 将枚举类型转换为字符串 QMetaEnum metaEnum QMetaEnum::fromType<QAbstractSocket::SocketState>(); const char *c…

计算机网络之NAT

NAT&#xff08;网络地址转换&#xff0c;Network Address Translation&#xff09;是一种网络技术&#xff0c;用于在一个网络与另一个网络之间重新映射IP地址。NAT最常见的应用是在家庭和小型办公室的路由器中&#xff0c;用于将私有&#xff08;内部&#xff09;IP地址转换为…

CCF-CSP 202312-1 仓库规划(Java、C++、Python)

文章目录 仓库规划问题描述输入格式输出格式样例输入样例输出子任务 满分代码JavaCPython 仓库规划 问题描述 西西艾弗岛上共有 n n n 个仓库, 依次编号为 1 ⋯ n 1 \cdots n 1⋯n 。每个仓库均有一个 m m m 维向量的位置编码, 用来表示仓库间的物流运转关系。 具体来说,…

centos7常用命令之安装插件1

虚拟机VM要卸载&#xff0c;在这记录下&#xff01;&#xff01;&#xff01; 1、关机、重启 init 0 关机 init 6 重启 2、docker 1.启动docker服务 systemctl start docker 2.查看是否docker启动成功 systemctl status docker 3.停止docker服务 systemctl stop docker #查看全…

ID3算法 决策树学习 Python实现

算法流程 输入&#xff1a;约束决策树生长参数&#xff08;最大深度&#xff0c;节点最小样本数&#xff0c;可选&#xff09;&#xff0c;训练集&#xff08;特征值离散或连续&#xff0c;标签离散&#xff09;。 输出&#xff1a;决策树。 过程&#xff1a;每次选择信息增益…

UDS诊断服务介绍之31服务(强控服务)

目录 一、功能描述 二、应用场景 三、31服务控制基本原理: 四、服务请求

全新魅思V20正规视频影视系统源码/APP+H5视频影视源码

全新魅思V20正规视频影视系统源码&#xff0c;APPH5视频影视源码。会员花费三千购入的&#xff0c;具体搭建教程放压缩包了&#xff01; 有兴趣的下载自行研究吧&#xff0c;搭建一共要用到3个域名&#xff0c;可以拿二级域名搭建。

系统学习Python——装饰器:类装饰器-[初探类装饰器和元类]

分类目录&#xff1a;《系统学习Python》总目录 函数装饰器是如此有用&#xff0c;以至于Python2.X和Python3.X都扩展了这一模式&#xff0c;允许装饰器应用于类和函数。简而言之&#xff0c;类装饰器类似于函数装饰器&#xff0c;但它们是在一条class语句的末尾运行&#xff0…

OpenHarmony—环境准备

JS SDK安装失败处理指导 问题现象 下载JS SDK时&#xff0c;下载失败&#xff0c;提示“Install Js dependencies failed”。解决措施 JS SDK下载失败&#xff0c;一般情况下&#xff0c;主要是由于npm代理配置问题&#xff0c;或未清理npm缓存信息导致&#xff0c;可按照如…

方案|AI智能监控如何从区域入侵与摄像头异常方面助力野外农场安全监管

大家都知道&#xff0c;旭帆科技的AI分析算法在监控中的应用十分广泛&#xff0c;除了常见的人体事件、行为事件、着装、车辆等算法&#xff0c;摄像头异常检测也十分重要。近期就有一个用户在我们这定制了一个野外摄像头异常检测算法系统。 方案需求 该用户的需求为需要在自己…