TypeScript 流程控制语句

devtools/2024/12/26 22:16:27/

文章目录

  • 前言
  • 一、if - else 与 else - if 条件判断
  • 二、switch 语句的使用及注意事项
  • 三、for 循环(常规、for - in、for - of)
    • (一)常规 for 循环
    • (二)for - in 循环
    • (三)for - of 循环
  • 四、while 与 do - while 循环
    • (一)while 循环
    • (二)do - while 循环
  • 五、循环控制语句(break、continue、return)
    • (一)break 语句
    • (二)continue 语句
    • (三)return 语句


前言

  在 TypeScript 编程中,流程控制语句起着至关重要的作用,它们能让程序根据不同的条件和情况执行相应的逻辑,使代码具备灵活性和智能性。本文将详细介绍 TypeScript 中的各种流程控制语句,包括 if - else 与 else - if 条件判断、switch 语句、for 循环、while 与 do - while 循环以及循环控制语句。
在这里插入图片描述

一、if - else 与 else - if 条件判断

  if - else 语句是最基本的条件判断结构。它的语法形式如下:

if (condition) {// 当条件 condition 为真时执行的代码块
} else {// 当条件 condition 为假时执行的代码块
}

  其中,condition是一个布尔表达式。如果condition的值为true,则执行if后面花括号内的代码块;如果condition的值为false,则执行else后面花括号内的代码块。例如:

let num: number = 10;
if (num > 5) {console.log("数字大于 5");
} else {console.log("数字小于等于 5");
}

  当需要进行多个条件的判断时,可以使用 else - if 语句。其语法为:

if (condition1) {// 当 condition1 为真时执行的代码块
} else if (condition2) {// 当 condition1 为假且 condition2 为真时执行的代码块
} else {// 当所有前面的条件都为假时执行的代码块
}

例如:

let score: number = 75;
if (score >= 90) {console.log("优秀");
} else if (score >= 80) {console.log("良好");
} else if (score >= 60) {console.log("及格");
} else {console.log("不及格");
}

  在使用 if - else 和 else - if 语句时,需要注意条件表达式的准确性和逻辑的完整性,避免出现遗漏或错误的判断情况。

二、switch 语句的使用及注意事项

  switch 语句用于根据不同的表达式值执行不同的代码分支。其语法如下:

switch (expression) {case value1:// 当 expression 的值等于 value1 时执行的代码块break;case value2:// 当 expression 的值等于 value2 时执行的代码块break;// 可以有多个 case 分支default:// 当 expression 的值与所有 case 的值都不匹配时执行的代码块
}

例如,根据不同的星期几输出相应的信息:

let day: number = 3;
switch (day) {case 1:console.log("星期一");break;case 2:console.log("星期二");break;case 3:console.log("星期三");break;case 4:console.log("星期四");break;case 5:console.log("星期五");break;case 6:console.log("星期六");break;case 7:console.log("星期日");break;default:console.log("无效的星期数");
}

  使用 switch 语句时要注意以下几点:

  • break 关键字:在每个 case 分支的末尾通常需要添加break语句,否则程序会继续执行下一个 case 分支的代码,这可能导致意外的结果。
  • 表达式类型:switch后面的表达式类型应该与case后面的值类型兼容。
  • default 分支:default分支是可选的,但添加它可以处理表达式值与所有case值都不匹配的情况,使程序更加健壮。

三、for 循环(常规、for - in、for - of)

(一)常规 for 循环

常规的 for 循环用于重复执行一段代码特定的次数。其语法为:

for (initialization; condition; increment/decrement) {// 循环体,每次循环执行的代码块
}

其中,initialization是初始化表达式,通常用于初始化循环变量;condition是循环条件,只要该条件为true,循环就会继续执行;increment/decrement是每次循环后对循环变量进行的增量或减量操作。例如,打印 1 到 10 的数字:

for (let i: number = 1; i <= 10; i++) {console.log(i);
}

(二)for - in 循环

for - in 循环主要用于遍历对象的可枚举属性。语法如下:

for (variable in object) {// 循环体,这里可以访问 object 的属性
}

例如,遍历一个对象的属性:

let person: { name: string, age: number } = { name: "John", age: 30 };
for (let key in person) {console.log(key + ": " + person[key]);
}

需要注意的是,for - in 循环在遍历数组时可能会出现一些问题,因为它会遍历数组原型链上的可枚举属性,所以在遍历数组时更推荐使用 for - of 循环或者常规的 for 循环。

(三)for - of 循环

for - of 循环用于遍历可迭代对象(如数组、字符串、Set、Map 等)。语法为:

for (variable of iterable) {// 循环体,这里可以访问 iterable 的每个元素
}

例如,遍历一个数组:

let numbers: number[] = [1, 2, 3, 4, 5];
for (let num of numbers) {console.log(num);
}

for - of 循环不能直接用于遍历普通对象,因为普通对象不是可迭代对象。

四、while 与 do - while 循环

(一)while 循环

while 循环在给定条件为真时重复执行一段代码。其语法为:

while (condition) {// 循环体,只要 condition 为真就会一直执行
}

例如,计算 1 到 100 的数字之和:

let sum: number = 0;
let i: number = 1;
while (i <= 100) {sum += i;i++;
}
console.log(sum);

使用 while 循环时要确保循环条件在某个时刻会变为false,否则会导致无限循环。

(二)do - while 循环

  do - while 循环与 while 循环类似,但它会先执行一次循环体,然后再检查循环条件。其语法为:

do {// 循环体,先执行一次
} while (condition);

例如:

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

  由于 do - while 循环至少会执行一次循环体,所以在某些特定场景下,如需要先执行一次操作再根据条件判断是否继续循环时非常有用。

五、循环控制语句(break、continue、return)

(一)break 语句

  break 语句用于立即跳出当前循环(for、while、do - while)或 switch 语句。当在循环中遇到 break 时,循环会立即终止,程序继续执行循环后面的代码。例如,在遍历数组时,当找到特定元素时就停止遍历:

let numbers: number[] = [1, 2, 3, 4, 5];
for (let i of numbers) {if (i === 3) {break;}console.log(i);
}

(二)continue 语句

  continue 语句用于跳过当前循环的剩余代码,直接进入下一次循环迭代。例如,打印 1 到 10 中除了 5 以外的数字:

for (let i: number = 1; i <= 10; i++) {if (i === 5) {continue;}console.log(i);
}

(三)return 语句

  return 语句用于从函数中返回值并终止函数的执行。当在循环内的函数中使用 return 时,不仅会结束循环,还会结束整个函数。例如:

function findNumber(numbers: number[], target: number): boolean {for (let num of numbers) {if (num === target) {return true;}}return false;
}
let result: boolean = findNumber([1, 2, 3, 4, 5], 3);
console.log(result);

  掌握好 TypeScript 中的这些流程控制语句及其相关特性,能够让我们编写更加灵活、高效和逻辑清晰的程序,从而更好地应对各种编程任务和业务逻辑需求。
在这里插入图片描述


http://www.ppmy.cn/devtools/145640.html

相关文章

时间轮在 Netty , Kafka 中的设计与实现

本文基于 Netty 4.1.112.Final , Kafka 3.9.0 版本进行讨论 在业务开发的场景中&#xff0c;我们经常会遇到很多定时任务的需求。比如&#xff0c;生成业务报表&#xff0c;周期性对账&#xff0c;同步数据&#xff0c;订单支付超时处理等。针对业务场景中定时任务逻辑复杂&…

Artec Space Spider助力剑桥研究团队解码古代社会合作【沪敖3D】

挑战&#xff1a;考古学家需要一种安全的方法来呈现新出土的陶瓷容器&#xff0c;对比文物形状。 解决方案&#xff1a;Artec Space Spider, Artec Studio 效果&#xff1a;本项目是REVERSEACTION项目的一部分&#xff0c;旨在研究无国家社会中复杂的古代技术。研究团队在考古地…

Grafana服务监控与日志查询可视化

目录 Grafana 简介 使用 1. 选择日志采集工具 2. 选择日志存储系统 3. 配置日志采集工具 3.1 使用 Filebeat 采集日志 3.2 使用 Promtail 采集日志 4. 配置日志存储系统 4.1 配置 Elasticsearch 4.2 配置 Loki 5. 配置 Grafana 5.1 安装 Grafana 5.2 添加数据源 …

CESS 出席华盛顿区块链政策峰会:参与国家安全与数据隐私保护专题讨论

12 月 16 日-17 日&#xff0c;由美国区块链协会&#xff08;Blockchain Association&#xff0c;简称 BA&#xff09;主办的 2024 区块链政策峰会在华盛顿特区盛大召开。 本次峰会吸引了众多区块链行业领导者、政策制定者和监管机构参与&#xff0c;围绕区块链政策、监管框架及…

基于Spring Boot的阿坝州旅游系统

一、系统背景与目的 随着旅游业的快速发展和互联网技术的不断进步&#xff0c;越来越多的游客开始通过网络平台来查询旅游信息、预订旅游产品。为了满足游客对阿坝州旅游信息的需求&#xff0c;提升阿坝州旅游业的整体服务水平&#xff0c;基于Spring Boot技术框架开发了一款阿…

AIGC训练效率与模型优化的深入探讨

文章目录 1.AIGC概述2.AIGC模型训练效率的重要性3.模型优化的概念与目标4.模型优化策略4.1 学习率调节4.2 模型架构选择4.3 数据预处理与增强4.4 正则化技术4.5 量化与剪枝 5.代码示例6.结论 人工智能领域的发展&#xff0c;人工智能生成内容&#xff08; AIGC&#xff09;越来…

从AI换脸到篡改图像,合合信息如何提升视觉内容安全?

本文目录 引言一、AI“真假之战”下的发展现状与考验挑战1.1 视觉内容安全现状与技术分类1.2视觉内容安全企业1.3视觉内容安全领域挑战 二、开山之石&#xff1a;引领视觉内容安全的创新之路2.1合合内容安全系统2.2发起编制相关技术规范2.3参与篡改检测挑战赛 三、视觉内容安全…

KaiOS 4.0 | DataCall and setupData implemention

相关文档 1、KaiOS 3.1 系统介绍 KaiOS 系统框架和应用结构(APP界面逻辑)文章浏览阅读842次,点赞17次,收藏5次。对于Java开发者而言,理解JS的逻辑调用是有点困难的。而KaiOS webapp开发又不同于现代的web开发,更像chrome浏览器内嵌模式。在这里梳理一下kaios平台web应用…