制御構文: 条件とループ

if/switch で分岐。for/while でループ。

if-else
条件分岐の基本。
for...of
配列要素をイテレート。
for...in
オブジェクトキーをイテレート。

条件分岐

電車のポイント切り替え (Railroad Switch)

プログラムの実行は一本の線路を走る電車です。`if` や `switch` は「ポイント切り替え」です。条件(信号)によって、電車を右の線路(True)か左の線路(False)に誘導します。これにより、同じプログラムでも状況に応じて異なるゴールに到達できます。

`if-else` が基本ですが、複雑な条件分岐は コードを読みにくくします(ネスト地獄)。「早期リターン(Early Return)」を使って、条件に合わない場合はすぐに関数を抜けることで、コードを平坦で読みやすく保つのがモダンな作法です。

if, switch, ternary
// if-else
if (x > 0) {
console.log('positive');
} else if (x < 0) {
console.log('negative');
} else {
console.log('zero');
}
// 三項演算子
const result = x > 0 ? 'positive' : 'non-positive';
// switch
switch (day) {
case 'Mon':
case 'Tue':
work();
break;
default:
rest();
}
Bad
// ❌ Bad: ネストが深い
if (user) {
if (user.active) {
if (user.verified) {
process(user);
}
}
}
Good
// ✅ Good: 早期リターン
if (!user) return;
if (!user.active) return;
if (!user.verified) return;
process(user);

ループ

for, while, for...of
// for
for (let i = 0; i < 10; i++) {
console.log(i);
}
// for...of (配列要素)
for (const item of items) {
process(item);
}
// for...in (オブジェクトキー)
for (const key in obj) {
console.log(key, obj[key]);
}
// while
while (condition) {
doSomething();
}
// do-while
do {
doSomething();
} while (condition);
Tip: 配列には for...of、オブジェクトには for...in を使う。

合格ライン

for...of と for...in の違いを説明できる
早期リターンでネストを減らせる

演習課題

課題1: 早期リターン
早期リターンでネストを減らしてください。
課題2: for...of
for...of で配列をループしてください。