TypeScript教程(五)条件语句,循环,函数

一、条件语句

条件语句基于不同的条件来执行不同的动作

1.if语句:只有当指定条件为true时,使用该语句来执行代码

2.if...else语句:当条件为true时执行代码,当条件为else时执行其他代码

3.if...else if...else语句:使用该语句来选择多个代码块之一来执行

4.switch语句:使用该语句来选择多个代码块之一来执行

1.if语句

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

语法:

if(boolean_expression){# 在布尔表达式 boolean_expression 为 true 执行
}

如果布尔表达式为true,则if内的语句块会被执行,否则if语句后的第一组代码将被执行

2.if...else语句

一个if语句后面一个可选的else语句,else在布尔表达式为false时被执行

语法

if(boolean_expression){# 在布尔表达式 boolean_expression 为 true 执行
}else{# 在布尔表达式 boolean_expression 为 false 执行
}

3.if...else if...else语句

在执行多个判断条件时有用

语法

if(boolean_expression 1) {# 在布尔表达式 boolean_expression 1 为 true 执行
} else if( boolean_expression 2) {# 在布尔表达式 boolean_expression 2 为 true 执行
} else if( boolean_expression 3) {# 在布尔表达式 boolean_expression 3 为 true 执行
} else {# 布尔表达式的条件都为 false 时执行
}

注:

1.一个if判断语句可以有0或1个else语句,必须在if...else后面

2.一个if判断语句可以有0个或者多个else...if,必须在else之前

3.一旦执行了else...if里的代码,后面的else...if或else将不再执行

4.switch...case语句

允许测试一个变量等于多个值时的情况,每个值为一个case,且被测试的变量会对每个switch case进行检查

语法:

switch(expression){case constant-expression  :statement(s);break; /* 可选的 */case constant-expression  :statement(s);break; /* 可选的 *//* 您可以有任意数量的 case 语句 */default : /* 可选的 */statement(s);
}

规则:

1.switch 语句中的 expression 是一个要被比较的表达式,可以是任何类型,包括基本数据类型(如 number、string、boolean)、对象类型(如 object、Array、Map)以及自定义类型(如 class、interface、enum)等。

2.在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。

3.case 的 constant-expression 必须与 switch 中的变量 expression 具有相同或兼容的数据类型。

4.当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。

5.当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。

6.不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。

7.一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default 关键字则表示当表达式的值与所有 case 值都不匹配时执行的代码块。default case 中的 break 语句不是必需的。

二、循环

1.for循环

用于多次执行一个语句序列,减缓管理循环变量的代码

语法:

for ( init; condition; increment ){statement(s);
}

流程解析:

1.init会先被执行,且只会执行一次,这一步允许声明并初始化任何循环控制变量,也可以在这里不屑任何语句,一个;即可

2.然后会判断condition,如果为true,则执行循环主体,如果为false,则不执行主体,且控制流会跳转到紧接着for循环的下一条语句

3.在执行完for循环主体后,控制流会跳回上面的increment语句,允许更新循环控制变量,可以留空

4.条件再次被判断,如果为true,则执行循环,过程不断重复,在条件为false时,结束循环

2.for...in循环

用于一组值的集合或列表进行迭代输出

语法:

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

val需要为string或any类型

3.for...of,forEach,every和some循环

1.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
}

2.forEach,every和some是javaScript的循环语法,TypeScript为JavaScript的超集,所以支持

因为forEach在iteration中是无法返回的,所以可以使用every和some来取代forEach

//forEach循环
let list = [4, 5, 6];
list.forEach((val, idx, array) => {// val: 当前值// idx:当前index// array: Array
});
//every循环
let list = [4, 5, 6];
list.every((val, idx, array) => {// val: 当前值// idx:当前index// array: Arrayreturn true; // Continues// Return false will quit the iteration
});

4.while循环

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

语法:

while(condition)
{statement(s);
}

statement(s)可以是一个单独的语句,也可以是几个语句组成的代码块

condition可以是任意的表达式,当条件为true时执行循环,当条件为false时,循环退出

5.do...while循环

不像for和while循环,他们是循环头部测试循环条件,do...while是在尾部测试循环条件

语法:

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

因为条件表达式语句在尾部,所以循环中的statement(s)会在条件被测试之前至少执行一次

如果条件为true,控制流会跳转回上面的do,然后重新执行循环中的statement(s),这个过程会不断重复,直到条件为false为止

6.break语句

两种特性:

1.break出现在一个循环体内时,循环会立刻终止,切程序流会紧接着循环下一条语句

2.可用于终止switch语句中的一个case

如果使用的是嵌套循环,break语句会停止执行最内层的循环,然后开始执行模块之后的下一行代码

语法:

break;

7.continue语句

continue语句有点像break语句,但是他是跳过当前循环中的代码,强制执行下一次循环

对于for循环,continue语句执行后自增语句仍会执行,对于while和do...while循环,continue语句会重新执行条件判断语句

语法:

continue;

8.无限循环

一直在运行不会停止的循环,for和while都可以创建无限循环

for创建无限循环语法格式:

for(;;) { // 语句
}

while创建无限循环语法格式:

while(true) { // 语句
} 

三、函数

函数是一组一起执行一个任务的语句

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

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

相关文章

Shell函数调用

定义一个函数,计算所有参数的和: #!/bin/bashfunction getsum(){local sum0for n in $do((sumn))donereturn $sum }getsum 10 20 55 15 #调用函数并传递参数 echo $?运行结果: 100

spss--数据分析Log-Binonial模型

在横断面研究中,Log-binomial 模型能够获得研究因素与结局变量的关联强度指标患病率比(PR),是一种研究二分类观察结果与多因素之间关系的重要方法,在医学研究等领域中得到了广泛的应用。 采用log-binomial 模型可直接估…

elementUi表单恢复至初始状态并不触发表单验证

elementUi表单恢复至初始状态并不触发表单验证 1.场景再现2.解决方法 1.场景再现 左侧是树形列表,右侧是显示节点的详情,点击按钮应该就是新增一个规则的意思,表单内容是没有改变的,所以就把需要把表单恢复至初始状态并不触发表单…

大语言模型(LLM)与 Jupyter 连接起来了

现在,大语言模型(LLM)与 Jupyter 连接起来了! 这主要归功于一个名叫 Jupyter AI 的项目,它是官方支持的 Project Jupyter 子项目。目前该项目已经完全开源,其连接的模型主要来自 AI21、Anthropic、AWS、Co…

MSP432自主开发笔记6:定时器多通道捕获多条编码器线脉冲数

所用开发板:MSP432P401R 今日在此更新一下编码器测速的定时器捕获写法,之前学习时竟然忘记更新了~~ 本文讲如何用定时器的通道来 捕获编码器的脉冲信号数量,不提供速度路程的计算方式, 文章提供源码,测试工程下载&a…

积木报表集成前端加载js文件404

项目场景: 在集成积木报表和shiro时候: 集成积木报表,shrio,shrio是定义在另一个模块下的,供另一个启动类使用,积木报表集成shrio的时候,需要依赖存放shrio的核心包,该核心包除了存…

android 如何分析应用的内存(十七)——使用MAT查看Android堆

android 如何分析应用的内存(十七)——使用MAT查看Android堆 前一篇文章,介绍了使用Android profiler中的memory profiler来查看Android的堆情况。 如Android 堆中有哪些对象,这些对象的引用情况是什么样子的。 可是我们依然面临…

【ArcGIS】经纬度数据转化成平面坐标数据

将点位置导入Gis中,如下(经纬度表征位置): 如何利用Gis将其转化为平面坐标呢? Step1 坐标变换 坐标变换,打开ArcToolbox,找到“数据管理工具”->“投影和变换”->“要素”->“投影”…

MySQL—缓存

目录标题 为什么要有Buffer Poolbuffer pool有多大buffer pool缓存什么 如何管理Buffer Pool如何管理空闲页如何管理脏页如何提高缓存命中率预读失效buffer pool污染 脏页什么时候会被刷入到磁盘 为什么要有Buffer Pool 虽然说MySQL的数据是存储在磁盘中,但是也不能…

抖音关键词搜索小程序排名怎么做

抖音关键词搜索小程序排名怎么做 1 分钟教你制作一个抖音小程序。 抖音小程序就是我的视频,左下方这个蓝色的链接,点进去就是抖音小程序。 如果你有了这个小程序,发布视频的时候可以挂载这个小程序,直播的时候也可以挂载这个小…

Express 实战(一):概览

在正式学习 Express 内容之前,我们有必要从大的方面了解一下 Node.js 。 在很长的一段时间里,JavaScript 一门编写浏览器中运行脚本的语言。不过近些年,随着互联网的发展以及技术进步,JavaScript 迎来了一个集中爆发的时代。一个…

谷歌关闭跨域限制.(生成一个开发浏览器),Chrome关闭跨域

(一)、首先找到浏览器在电脑磁盘中的位置,并复制 (二)、复制一个浏览器的快捷方式到桌面(不影响正常浏览器) (三)、chrom鼠标右键属性,修改快捷方式的目标 (四)chrome.exe 后面添加 --disable-web-security --user-data-dir 复制的Chrome浏览…

787. 归并排序

文章目录 QuestionIdeasCode Question 给定你一个长度为 n 的整数数列。 请你使用归并排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n 。 第二行包含 n 个整数(所有整数均在 1∼109 范围…

JUC并发编程(JUC核心类、TimeUnit类、原子操作类、CASAQS)附带相关面试题

目录 1.JUC并发编程的核心类 2.TimeUnit(时间单元) 3.原子操作类 4.CAS 、AQS机制 1.JUC并发编程的核心类 虽然java中的多线程有效的提升了程序的效率,但是也引发了一系列可能发生的问题,比如死锁,公平性、资源管理…

【100天精通python】Day34:使用python操作数据库_ORM(SQLAlchemy)使用

目录 专栏导读 1 ORM 概述 2 SQLAlchemy 概述 3 ORM:SQLAlchemy使用 3.1 安装SQLAlchemy: 3.2 定义数据库模型类: 3.3 创建数据表: 3.4 插入数据: 3.5 查询数据: 3.6 更新数据: 3.7 删…

C/C++中volatile关键字详解

1. 为什么用volatile? C/C 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C Programming Language" 对 volatile 修饰词的说明: A volatile specifier is a hint to a…

【Git】 git push origin master Everything up-to-date报错

hello,我是索奇,可以叫我小奇 git push 出错?显示 Everything up-to-date 那么看看你是否提交了message 下面是提交的简单流程 git add . git commit -m "message" git push origin master 大多数伙伴是没写git commit -m "…

AI自动驾驶

AI自动驾驶 一、自动驾驶的原理二、自动驾驶的分类三、自动驾驶的挑战四、自动驾驶的前景五、关键技术六、自动驾驶的安全问题七、AI数据与自动驾驶八、自动驾驶的AI算法总结 自动驾驶技术是近年来备受关注的热门话题。它代表了人工智能和机器学习在汽车行业的重要应用。本文将…

UML之四种事物

目录 结构事物 行为事物 分组事物: 注释事物 结构事物 1.类(Class) -类是对一组具有相同属性、方法、关系和语义的对象的描述。一个类实现一个或多个接口 2.接口(interface) -接口描述 了一个类或构件的一个服务的操作集。接口仅仅是定义了一组操作的规范&…

案例16 基于Spring Boot实现学生新增案例

基于Spring Boot实现学生新增。 1. 创建Spring Boot项目 创建Spring Boot项目&#xff0c;项目名称为case16-springboot-student01。 ​ 2. 设置项目信息 ​ 3. 选择依赖 选择Lombok ​ 选择Spring Web ​ 4. 设置项目名称 ​ 5. Maven依赖 <?xml version"1.0&qu…