TypeScript - ループの基本: プログラミングにおける繰り返しのマスター
こんにちは、将来のプログラマーさんたち!TypeScriptのループの世界へのエキサイティングな旅にお連れします。プログラミングを教えて10年以上経つ私が言うと、ループを理解するのは自転車に乗るのと同じです。一度習得すると忘れることはなく、思いもよらない所に連れて行ってくれます!
forループ: イテレーションの世界への第一歩
まずはクラシックなfor
ループから始めましょう。これは特定の回数タスクを繰り返す親切なロボットだと思ってください。
基本構文
TypeScriptにおけるfor
ループの見本は以下の通りです:
for (let i = 0; i < 5; i++) {
console.log("Hello, World!");
}
これを分解してみましょう:
-
let i = 0
: ここからカウントを始めます。 -
i < 5
: この条件が真の間は続けます。 -
i++
: 各ラウンドの後でカウントを1増やします。 -
{ }
の内側は繰り返されるコードです。
このコードを実行すると、「Hello, World!」が5回表示されます。ロボット友達に「こんにちは」と言うのを5回続けさせるのと同じです!
より実用的な例
シンプルなゲームを作成して、キャラクターが障害物を飛び越えるとします。以下に、5つの障害物を作成するために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);
この例では、障害物の配列を作成しています。ループは5回実行され、各回で新しい障害物を配列に追加します。i + 1
を使って、障害物を1から始めて番号を振っています。
for...inループ: オブジェクトのプロパティを探索
次にfor...in
ループに移ります。このループは、オブジェクトのすべてのプロパティを見たいときに最適です。デスクの引き出しを全部覗きたい好奇のロボットのようなものです。
基本構文
シンプルな例を以下に示します:
let person = {
name: "Alice",
age: 30,
job: "Developer"
};
for (let key in person) {
console.log(`${key}: ${person[key]}`);
}
このループはperson
オブジェクトの各プロパティ(または「キー」)を巡回し、それとその値を表示します。オブジェクトがどのようなプロパティを持っているかを探るのに便利です。
より複雑な例
シンプルなRPGゲームのインベントリシステムを構築するとします:
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}`);
}
}
このコードはインベントリを一覧表示し、複数あるアイテムは複数形にします。アイテムを数え、報告できる便利なアシスタントのようなものです!
for...ofループ: 配列やイテラブルオブジェクトの traversalを簡素化
最後にfor...of
ループを紹介します。このループは、配列や他のイテラブルオブジェクトの各アイテムを巡回したいときに最適です。一列のアイテムを歩き回り、それぞれを確認するロボットのようなものです。
基本構文
配列の数字を使ったシンプルな例を以下に示します:
let numbers = [1, 2, 3, 4, 5];
for (let num of numbers) {
console.log(num * 2);
}
このループはnumbers
配列の各数字を巡回し、その2倍を表示します。各アイテムに対して何かを行いたいときに、従来のfor
ループよりも簡素です。
より興味深い例
シンプルなテキストベースのアドベンチャーゲームを作成するとします。以下に、プレイヤーに可能なアクションを提示する例を示します:
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 playerChoice = actions[Math.floor(Math.random() * actions.length)];
console.log(`You chose to ${playerChoice.toLowerCase()}.`);
このコードはアクションのリストをプレイヤーに提示し、ランダムな選択をシミュレートします。for...of
ループを使うことで、配列のインデックスを気にせずにすべてのオプションを一覧表示できます。
ループメソッドの比較
適切なループを選ぶのに役立つ比較表を以下に示します:
ループタイプ | 最も適している用途 | 構文 |
---|---|---|
for |
繰り返し回数が既知 | for (let i = 0; i < n; i++) |
for...in |
オブジェクトのプロパティを巡回 | for (let key in object) |
for...of |
配列要素や他のイテラブルオブジェクトを巡回 | for (let item of iterable) |
適切なループを選ぶことで、コードが読みやすく効率的になります。道具を選ぶのと同じで、釘にはハンマー、ネジにはスクリュedriver、データには適切なループを使いましょう!
結論として、ループはプログラミングの基本概念であり、それをマスターすることでコーディングの世界が広がります。繰り返しのアクション、オブジェクトの探索、配列の作業に関係なく、適切なループがあります。練習を続ければ、すぐにプロのようにループを使えるようになります!未来の開発者たち、ハッピーコーディングを!
Credits: Image by storyset