Skip to content

TypeScript 循环

循环语句用于重复执行一段代码,直到满足特定的退出条件。TypeScript 支持多种循环结构,与 JavaScript 中的循环相同。

1. for 循环

for 循环是最常用和最灵活的循环类型。它由三个部分组成:初始化、条件和增量/减量表达式。

语法

typescript
for (initialization; condition; increment/decrement) {
    // 循环体代码
}
  • initialization: 在循环开始前执行一次,通常用于初始化一个计数器变量。
  • condition: 在每次循环迭代开始前进行评估。如果为 true,则执行循环体。如果为 false,则循环终止。
  • increment/decrement: 在每次循环迭代结束后执行,通常用于更新计数器。

示例

typescript
for (let i: number = 0; i < 5; i++) {
    console.log(`Iteration ${i + 1}`);
}
// 输出:
// Iteration 1
// Iteration 2
// Iteration 3
// Iteration 4
// Iteration 5

2. while 循环

while 循环会在指定的条件为 true 时持续执行一个代码块。

语法

typescript
while (condition) {
    // 循环体代码
}

条件在每次循环迭代开始之前被检查。如果一开始条件就为 false,那么循环体将一次也不会执行。

示例

typescript
let count: number = 0;

while (count < 3) {
    console.log(`Count is ${count}`);
    count++;
}
// 输出:
// Count is 0
// Count is 1
// Count is 2

3. do...while 循环

do...while 循环与 while 循环类似,但它保证循环体至少会执行一次,因为条件是在循环体执行之后才进行检查。

语法

typescript
do {
    // 循环体代码
} while (condition);

示例

typescript
let num: number = 5;

do {
    console.log(`Number is ${num}`);
    num++;
} while (num < 5);
// 输出:
// Number is 5

4. for...of 循环

for...of 循环(在 ES6 中引入)用于遍历可迭代对象(如数组、字符串、Map、Set 等)的元素值。

语法

typescript
for (let element of iterable) {
    // 对每个 element 执行的代码
}

示例

typescript
let colors: string[] = ["red", "green", "blue"];

for (let color of colors) {
    console.log(color);
}
// 输出:
// red
// green
// blue

let message: string = "hello";

for (let char of message) {
    console.log(char);
}
// 输出:
// h
// e
// l
// l
// o

5. for...in 循环

for...in 循环用于遍历一个对象的所有可枚举属性的键(key)。

语法

typescript
for (let key in object) {
    // 对每个 key 执行的代码
}

示例

typescript
let person = {
    name: "John",
    age: 30,
    city: "New York"
};

for (let key in person) {
    // 检查属性是否是对象自身的,而不是继承来的
    if (person.hasOwnProperty(key)) {
        console.log(`${key}: ${person[key]}`);
    }
}
// 输出:
// name: John
// age: 30
// city: New York

注意: for...in 不应用于遍历数组,因为它可能会以非预期的顺序遍历索引,并且可能包含非数字键。对于数组遍历,应优先使用 forfor...of 或数组方法(如 forEach)。

循环控制语句

  • break: 立即终止当前循环。
  • continue: 跳过当前循环的本次迭代,并开始下一次迭代。

示例

typescript
// break 示例
for (let i = 0; i < 10; i++) {
    if (i === 5) {
        break; // 当 i 等于 5 时,退出循环
    }
    console.log(i);
} // 输出: 0, 1, 2, 3, 4

// continue 示例
for (let i = 0; i < 5; i++) {
    if (i === 2) {
        continue; // 当 i 等于 2 时,跳过本次迭代
    }
    console.log(i);
} // 输出: 0, 1, 3, 4

本站内容仅供学习和研究使用。