【零基础入门TypeScript】判断条件和循环

目录

定环

无限循环

示例:while 与 do..while

中断语句

句法

流程图

例子

继续语句

句法

流程图

例子

输出

无限循环

语法:使用 for 循环的无限循环

示例:使用 for 循环的无限循环

语法:使用 while 循环进行无限循环

示例:使用 while 循环的无限循环


决策结构要求程序员指定一个或多个要由程序评估或测试的条件,以及如果条件被确定为真则要执行的一条或多条语句,以及可选的如果条件成立则要执行的其他语句。条件被确定为假。

下面显示的是大多数编程语言中典型决策结构的一般形式 -

决策

决策结构在执行指令之前评估条件。TypeScript 中的决策结构分类如下 -

编号声明及说明
1.if 语句

“if”语句由一个布尔表达式后跟一个或多个语句组成。

2.if...else 语句

“if”语句后面可以跟一个可选的“else”语句,该语句在布尔表达式为 false 时执行。

3.else...if 和嵌套 if 语句

您可以在另一个“if”或“else if”语句内使用一个“if”或“else if”语句。

4.switch语句

“switch”语句允许根据值列表测试变量。

您可能会遇到这样的情况:一段代码需要执行多次。一般来说,语句是按顺序执行的:首先执行函数中的第一个语句,然后执行第二个语句,依此类推。

编程语言提供了各种控制结构,允许更复杂的执行路径。

循环语句允许我们多次执行一条语句或一组语句。下面给出的是大多数编程语言中循环语句的一般形式。

环形

TypeScript 提供了不同类型的循环来处理循环需求。下图说明了循环的分类 -

循环类型

定环

迭代次数是确定/固定的循环称为确定循环。for循环是确定循环的实现。

编号循环和描述
1.for循环

for循环是确定循环的实现。

无限循环

当循环中的迭代次数不确定或未知时,使用不定循环。

可以使用以下方式实现不定循环 -

序列号循环和描述
1.while 循环

每次指定的条件计算结果为 true 时,while 循环都会执行指令。

2.做…同时

do...while 循环与 while 循环类似,不同之处在于 do...while 循环不会在循环第一次执行时评估条件。

示例:while 与 do..while


var n:number = 5 
while(n > 5) { console.log("Entered while") 
} 
do { console.log("Entered do…while") 
} 
while(n>5)

该示例最初声明了一个 while 循环。仅当传递给 while 的表达式计算结果为 true 时才进入循环。在此示例中,n 的值不大于零,因此表达式返回 false 并且跳过循环。

另一方面,do…while 循环执行语句一次。这是因为初始迭代不考虑布尔表达式。但是,对于后续迭代,while 检查条件并将控制移出循环。

编译时,它将生成以下 JavaScript 代码 -


//Generated by typescript 1.8.10
var n = 5;
while (n > 5) {console.log("Entered while");
}do {console.log("Entered do…while");
} while (n > 5);

上面的代码将产生以下输出 -

Entered do…while

中断语句

Break语句用于从构造中取出控制权在循环中使用break会导致程序退出循环。其语法如下 -

句法

break

流程图

中断声明

例子

现在,看看下面的示例代码 -


var i:number = 1 
while(i<=10) { if (i % 5 == 0) {   console.log ("The first multiple of 5  between 1 and 10 is : "+i) break     //exit the loop if the first multiple is found } i++ 
}  //outputs 5 and exits the loop

编译时,它将生成以下 JavaScript 代码 -


//Generated by typescript 1.8.10
var i = 1;while (i <= 10) {if (i % 5 == 0) {console.log("The first multiple of 5  between 1 and 10 is : " + i);break; //exit the loop if the first multiple is found}i++;
} //outputs 5 and exits the loop

它将产生以下输出 -

The first multiple of 5  between 1 and 10 is : 5

继续语句

continue语句跳过当前迭代中后续语句,并将控制权返回到循环的开头。与break 语句不同,Continue 不会退出循环。它终止当前迭代并开始后续迭代。

句法

continue

流程图

继续声明

例子

下面给出了 continue 语句的示例 -


var num:number = 0
var count:number = 0;for(num=0;num<=20;num++) {if (num % 2==0) {continue}count++
}
console.log (" The count of odd values between 0 and 20 is: "+count)    //outputs 10

上面的示例显示 0 到 20 之间奇数的数量。如果数量为偶数,则循环退出当前迭代。这是通过使用continue语句来实现的。

编译时,它将生成以下 JavaScript 代码。


//Generated by typescript 1.8.10
var num = 0;
var count = 0;for (num = 0; num <= 20; num++) {if (num % 2 == 0) {continue;}count++;
}
console.log(" The count of odd values between 0 and 20 is: " + count);     //outputs 10

输出

The count of odd values between 0 and 20 is: 10

无限循环

无限循环是无限运行的循环。for循环while循环可以用来构成无限循环。

语法:使用 for 循环的无限循环

for(;;) { //statements 
}

示例:使用 for 循环的无限循环


for(;;) { console.log(“This is an endless loop”) 
}

语法:使用 while 循环进行无限循环

while(true) { //statements 
} 

示例:使用 while 循环的无限循环

while(true) { console.log(“This is an endless loop”) 
}

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

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

相关文章

LeetCode-轮转数组的三种方法(189)

题目描述&#xff1a; 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 思路一&#xff1a; 建立一个两倍原数组长度的数组&#xff0c;然后其中保存两遍原数组中的元素&#xff0c;轮转的过程就可以看成是在这个新数组中截…

mac电脑配置本地连接开发机器一键打包部署

mac电脑 安装homebrew&#xff08;已安装请跳过&#xff09; /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"安装rsync同步工具 brew install rsync配置服务器免密 生成公/私钥&#xff08;生成过的请跳过&a…

云计算:OpenStack 分布式架构管理VXLAN网络(单控制节点与多计算节点)

目录 一、实验 1.环境 2.各节点新增网卡准备VXLAN网络 3.控制节点配置私有网络 4.计算节点1配置私有网络 5.计算节点2配置私有网络 6.重启服务 7.修改Dashboard 8.新建项目&#xff08;租户&#xff09;及用户 9.新建网络与子网 10.新建实例 11.新建路由 12.新增浮…

物联网的网络管理技术开发

物联网并不是新的事物。不论称为物联网或者是传感网&#xff0c;物联网的基本组成可以看成为传感器网络接入互联网构成,当然也有仅仅是传感器网络组成的简单的物联网系统。但是总的来说,物联网有许多新的特点。这些特点导致物联网对于其网络的管理有新的要求。因此电信网和互联…

算法与数据结构之数组(Java)

目录 1、数组的定义 2、线性结构与非线性结构 3、数组的表现形式 3.1 一维数组 3.2 多维数组 4、重要特性&#xff1a;随机访问 5、ArrayList和数组 6、堆内存和栈内存 7、数组的增删查改 7.1 插入数据 7.2 删除一个数据 7.3 修改数组 7.4 查找数据 8、总结 什么…

面试数据库八股文十问十答第五期

面试数据库八股文十问十答第五期 作者&#xff1a;程序员小白条&#xff0c;个人博客 1&#xff09;介绍一下 MySQL8 的新特性 Window Functions&#xff1a; 提供了对查询结果进行窗口化处理的功能&#xff0c;例如使用 ROW_NUMBER() 进行分页。Common Table Expressions (CT…

MongoDB聚合:$facet

对输入的文档执行多个聚合管道&#xff0c;在输出结果中&#xff0c;每个子管道一个字段&#xff0c;字段值是一个文档数组。 $facet可以在一个阶段创建多面聚合&#xff0c;横跨多个维度或方面来描述数据特征。多面聚合可提供多个过滤器和分类指导数据浏览和分析。 $facet 阶…

Debezium日常分享系列之:Debezium2.5版本之connector for JDBC

Debezium日常分享系列之&#xff1a;Debezium2.5版本之connector for JDBC 一、概述二、JDBC 连接器的工作原理三、使用复杂的 Debezium 变更事件四、至少一次交付五、多项任务六、数据和列类型映射七、主键处理八、删除模式九、幂等写入十、Schema evolution十一、引用和区分大…

视频监控可视化云平台EasyCVR智能视频技术优势分析

TSINGSEE青犀视频安防视频管理系统EasyCVR视频智能融合共享平台&#xff0c;是一个支持Windows/Linux(CentOS ubuntu)/国产化系统的视频管理平台。平台可以支持多协议接入&#xff0c;通过视频应用引擎将多种格式的视频数据转换为统一的视频流数据&#xff0c;支持无插件H5直播…

RK3568平台 input输入子系统

一.input子系统简介 Input 子系统是管理输入的子系统&#xff0c; 和 pinctrl 和 gpio 子系统一样&#xff0c; 都是 Linux 内核针对某一类设备而创建的框架。 input 子系统处理输入事务&#xff0c; 任何输入设备的驱动程序都可以通过 input 输入子系统提供的接口注册到内核&…

Java虚拟机介绍

JVM是一种用于计算设备的规范&#xff0c;它是一个虚拟出来的计算机&#xff0c;是通过在实际的计算机上仿真模拟计算机的各个功能来实现的。Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。每个Java虚拟机都着一个清晰的任务&#x…

用通俗易懂的方式讲解大模型:在 CPU 服务器上部署 ChatGLM3-6B 模型

大语言模型&#xff08;LLM&#xff09;的量化技术可以大大降低 LLM 部署所需的计算资源&#xff0c;模型量化后可以将 LLM 的显存使用量降低数倍&#xff0c;甚至可以将 LLM 转换为完全无需显存的模型&#xff0c;这对于 LLM 的推广使用来说是非常有吸引力的。 本文将介绍如何…

Flume基础知识(三):Flume 实战监控端口数据官方案例

1. 监控端口数据官方案例 1&#xff09;案例需求&#xff1a; 使用 Flume 监听一个端口&#xff0c;收集该端口数据&#xff0c;并打印到控制台。 2&#xff09;需求分析&#xff1a; 3&#xff09;实现步骤&#xff1a; &#xff08;1&#xff09;安装 netcat 工具 sudo yum …

SVN服务端的下载、安装

地址 &#xff1a; Apache Subversion Binary Packages 下载 点击 VisualSVN 安装 都是点击 next 点击next &#xff0c;即可安装成功

SpringBoot学习(三)-员工管理系统开发(重在理解)

注&#xff1a;此为笔者学习狂神说SpringBoot的笔记&#xff0c;其中包含个人的笔记和理解&#xff0c;仅做学习笔记之用&#xff0c;更多详细资讯请出门左拐B站&#xff1a;狂神说!!! 本文是基于狂神老师SpringBoot教程中的员工管理系统从0到1的实践和理解。该系统应用SpringB…

B端产品经理学习-需求挖掘

B端产品需求挖掘 目录 识别和管理干系人 决策人和负责人需求挖掘 针对用户进行需求挖掘 用户访谈结果整理 B端产品的需求来源是非常复杂的&#xff0c;要考虑多个方面&#xff1b;如果你是一个通用性的产品&#xff0c;要考虑市场、自身优劣势、干系人。而定制型B端产品会…

uniapp:签字版、绘画板 插件l-signature

官方网站&#xff1a;LimeUi - 多端uniapp组件库 使用步骤&#xff1a; 1、首先从插件市场将代码下载到项目 海报画板 - DCloud 插件市场 2、下载后&#xff0c;在项目中的uni_modules目录 3、最后 没有其它步骤&#xff0c;直接官网代码复制到vue文件中就可以了&#xff0c…

综合跨平台全端ui自动化测试框架Airtest——AirtestIDE录制微信小程序脚本教学

前言 有在自动化测试领域的小伙伴应该都知道&#xff0c;app和小程序自动化这一类的自动化测试在实际操作中有时候很棘手让人心烦&#xff0c;动不动就是用appium写代码脚本维护什么的&#xff0c;不仅步骤繁琐&#xff0c;环境配置方面也是繁琐无比&#xff0c;动不动就与客户…

mysql在left join后的where条件里过滤join表将变为inner join

sql1&#xff1a;此时是正常的左连接 select user.name,dept.dept_name from user left join dept on dept.id user.dept_id and dept.is_deletedN where user.is_deleteN此时将返回全部user并附带所属的单位&#xff08;有可能有些user没有dept&#xff09; 那假如想查出单位…

策略模式+责任链模式配合Nacos实现参数校验链

1、业务场景 在SpringBoot项目中&#xff0c;针对接收的参数信息&#xff0c;根据需求要进行以下校验&#xff1a; 校验客户的apikey是否合法&#xff1b;校验请求的ip地址是否是白名单&#xff1b;校验短信的签名&#xff1b;校验短信的模板&#xff1b;校验手机号的格式合法…