文章目录
- 前言
- 一、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 中的这些流程控制语句及其相关特性,能够让我们编写更加灵活、高效和逻辑清晰的程序,从而更好地应对各种编程任务和业务逻辑需求。