TypeScript - For Loop: Mastering Repetition in Programming

안녕하세요, 열망하는 프로그래머 여러분! TypeScript 루프의 세계로의 흥미로운 여정을 안내해 드리게 되어 기쁩니다. 10년 이상 프로그래밍을 가르쳐온 사람으로서, 루프를 이해하는 것은 자전거 타는 것을 배우는 것과 같다고 말씀드릴 수 있습니다. 한 번 배우면 절대 잊지 않을 것이며, 상상도 못한 곳으로 데려다줄 것입니다!

TypeScript - For Loop

The for loop: Your First Step into the World of Iteration

for 루프부터 시작해 보겠습니다. 이를 친절한 로봇이 특정 횟수만큼 작업을 반복하는 지시를 따르는 것으로 생각해 보세요.

Basic Syntax

TypeScript에서 for 루프는 다음과 같습니다:

for (let i = 0; i < 5; i++) {
    console.log("Hello, World!");
}

이를 각각의 부분으로 나누어 설명하겠습니다:

  1. let i = 0: 여기서부터 시작하여 계산합니다.
  2. i < 5: 이 조건이 참인 동안 계속 진행합니다.
  3. i++: 각 라운드마다 1을 증가시킵니다.
  4. { } 내의 모든 것은 반복됩니다.

이 코드를 실행하면 "Hello, World!"가 다섯 번 출력됩니다. 로봇 친구에게 "안녕하세요!"를 다섯 번 말하는 것과 같습니다.

A More Practical Example

간단한 게임에서 캐릭터가 장애물을 뛰어넘는 경우를 가정해 보겠습니다. for 루프를 사용하여 다섯 개의 장애물을 만드는 방법은 다음과 같습니다:

let obstacles: string[] = [];

for (let i = 0; i < 5; i++) {
    obstacles.push(`Obstacle ${i + 1}`);
    console.log(`Created ${obstacles[i]}`);
}

console.log("All obstacles:", obstacles);

이 예제에서는 장애물 배열을 만듭니다. 루프가 다섯 번 실행되어 각 번호의 장애물을 배열에 추가합니다. i + 1을 사용하여 장애물 번호를 1부터 시작하게 합니다.

The for...in loop: Exploring Object Properties

이제 for...in 루프를 만나보겠습니다. 이 루프는 객체의 모든 프로퍼티를 살펴보고 싶을 때 완벽합니다. 모든 캐비닛을 기꺼이 들여다보고 싶은 호기심 많은 로봇 같은 것입니다.

Basic Syntax

간단한 예제를 보겠습니다:

let person = {
    name: "Alice",
    age: 30,
    job: "Developer"
};

for (let key in person) {
    console.log(`${key}: ${person[key]}`);
}

이 루프는 person 객체의 각 프로퍼티(또는 "key")를 순회하며 그것과 그 값을 출력합니다. 객체가 어떤 프로퍼티를 가지고 있는지 확실하지 않을 때 탐색하는 데 좋은 방법입니다.

A More Complex Example

롤プレ잉 게임의 간단한 인벤토리 시스템을 만드는 경우를 가정해 보겠습니다:

let inventory = {
    sword: 1,
    shield: 1,
    potion: 5,
    arrow: 20
};

console.log("Your inventory:");

for (let item in inventory) {
    if (inventory[item] > 1) {
        console.log(`${inventory[item]} ${item}s`);
    } else {
        console.log(`${inventory[item]} ${item}`);
    }
}

이 코드는 인벤토리를 출력하며, 1개 이상의 아이템을 소유하고 있을 때 아이템을 복수形으로 출력합니다. 여러분의 아이템을 세고 보고할 수 있는 유용한 어시스턴트와 같습니다!

The for...of loop: Simplifying Array and Iterable Object Traversal

마지막으로 for...of 루프를 소개하겠습니다. 이 루프는 배열이나 다른 반복 가능한 객체의 각 아이템을 순회하고 싶을 때 완벽합니다. 줄에 늘어선 아이템을 하나씩 살펴보는 로봇과 같습니다.

Basic Syntax

간단한 예제를 보겠습니다:

let numbers = [1, 2, 3, 4, 5];

for (let num of numbers) {
    console.log(num * 2);
}

이 루프는 numbers 배열의 각 숫자를 순회하며 그 배수를 출력합니다. 각 아이템에 대해 무엇을 하고 싶을 때 전통적인 for 루프보다 훨씬 간단합니다.

A More Interesting Example

간단한 텍스트 기반 어드벤처 게임을 만드는 경우를 가정해 보겠습니다. 가능한 액션의 배열이 있으며, 이를 플레이어에게 보여주고 싶습니다:

let actions = ["Fight", "Run", "Hide", "Call for help"];

console.log("What would you like to do?");

for (let action of actions) {
    console.log(`- ${action}`);
}

// Let's simulate a player choice
let playerChoice = actions[Math.floor(Math.random() * actions.length)];
console.log(`You chose to ${playerChoice.toLowerCase()}.`);

이 코드는 플레이어에게 가능한 액션 목록을 보여주고 랜덤한 선택을 시뮬레이션합니다. for...of 루프를 사용하면 모든 옵션을 쉽게 나열할 수 있습니다.

Comparison of Loop Methods

적절한 루프를 선택하기 위해 유용한 비교 표를 제공합니다:

Loop Type Best Used For Syntax
for Known number of iterations for (let i = 0; i < n; i++)
for...in Iterating over object properties for (let key in object)
for...of Iterating over array elements or other iterables for (let item of iterable)

기억하시기 바랍니다, 적절한 루프를 선택하면 코드가 더 읽기 쉬우며 효율적입니다. 올바른 도구를 선택하는 것처럼, 올바른 루프를 사용하십시오!

결론적으로, 루프는 프로그래밍의 기본 개념이며, 이를 마스터하면 프로그래밍 여정에서 많은 가능성을 열어줄 것입니다. 반복 작업, 객체 탐색, 배열 작업과 같은 다양한 작업을 수행할 때 적절한 루프가 있습니다. 열심히 연습하면 곧 프로처럼 루프를 사용하게 될 것입니다! 미래의 개발자 여러분, 즐겁게 코딩하세요!

Credits: Image by storyset