はじめに
JavaScript(他の多くの言語でも同様)では、処理の流れをコントロールするために return
, break
, continue
という命令が使われます。
初心者のうちは「何がどう違うの?」「どう書けばきれいに見えるの?」と迷いやすいところ。本記事では違い・使い分け・使い方のコツをやさしく解説します。
ざっくり比較表
命令 | 処理対象 | 何をするか | よく使う場面 |
---|---|---|---|
return |
関数 | 関数の実行を即座に終了し、値を返す | 値を返したい/それ以上の処理不要なとき |
break |
ループ・switch文 | 処理を途中で打ち切って、ループ自体を抜ける | 条件が満たされたらループを終了したいとき |
continue |
ループ | 処理中の1回分をスキップし、次の繰り返しへ | 条件によって「今回だけ」スキップしたいとき |
return
:関数の出口
return
は 関数の処理を終わらせて値を返すための命令です。
function isEven(n) {
if (n % 2 === 0) {
return true;
}
return false;
}
条件が満たされた時点で早めに return
することで、ネストが浅くなり読みやすいコードになります。
function isAdult(age) {
if (age < 18) return false;
return true;
}
break
:ループの終了
break
は ループの途中でも、条件を満たしたら脱出する命令です。
for (let i = 0; i < 10; i++) {
if (i === 5) break;
console.log(i); // 0〜4だけ出力される
}
- 無限ループから脱出する条件に使うことも多いです
while (true) {
const input = getInput();
if (input === 'exit') break;
handle(input);
}
continue
:1回スキップ
continue
は **「今回は処理をスキップして次へ」**という命令です。
for (let i = 1; i <= 5; i++) {
if (i === 3) continue;
console.log(i); // 1, 2, 4, 5 を出力(3だけスキップ)
}
- 条件によって「不要な処理を飛ばしたい」ときに使う
- 複雑な
if
のネストを避けてコードを読みやすくできます
for (const item of items) {
if (!item.isActive) continue;
process(item);
}
実践Tips:ネストを減らすと読みやすい!
例:早期 return
を使って if-else
を避ける
悪い例:
function getStatus(user) {
if (user) {
return 'ログイン済み';
} else {
return '未ログイン';
}
}
良い例:
function getStatus(user) {
if (!user) return '未ログイン';
return 'ログイン済み';
}
✨もっと良い例:
function getStatus(user) {
return user ? 'ログイン済み' : '未ログイン'
}
おわりに
return
, break
, continue
をうまく使えるようになると、処理の流れをシンプルに保ちつつ、意図を明確にしたコードが書けるようになります。
読みやすさを意識して、積極的に使い分けていきましょう!
命令 | 使う場面 | 書き方のコツ |
---|---|---|
return |
関数から値を返す/早めに抜けたい | 条件満たす → 即 return が◎ |
break |
ループを抜ける(脱出) |
while(true) と組み合わせやすい |
continue |
ループ内で「今回はスキップ」したい | ネストを避けたいときに有効 |