for文やwhile文などのループ処理では、break文を使うとループを終了することができます。一方で continue文を使うと、ループは続けたまま、その回の処理だけをスキップすることができます。
JavaScriptでは特定の条件に当てはまるときだけ処理を飛ばしたい場面で continue文がよく使われています。この記事では、continue文の基本的な使い方を分かりやすく解説します。
なお、未経験からITエンジニアへの就職に興味がある方や未経験からプログラミングを効率よく学びたいと考えている方は、就職率98.3%で受講料無料のプログラミングスクールプログラマカレッジもおすすめです。
最終更新日:2026年7月27日
目次
continue文は、for文やwhile文などのループ処理において、現在の回の残りの処理をスキップし、直ちに次の回へ進めるための制御文です。break文はループそのものを終了しますが、continue文は今の1回だけを飛ばしループ自体は続ける、という違いがあります。
continue文は、for文やwhile文などの、ループ処理の中でだけ使います。ある条件に当てはまったときだけ処理をスキップしたい場合に便利なので、通常はif文と組み合わせて使います。
continue文は、次のように記述します。
while (条件式) {
if ( 処理をスキップしたい条件式 ) {
continue;
}
繰り返し行う処理
}
continue が実行されると、その下に書かれている処理は全てスキップされ、ループの次の回に進みます。
次のサンプルは、入力された2つの数値A、Bを利用して、1からAまでの数字のうち、Bの倍数以外の数字を出力するプログラムです。
A及びBに数字を入力してOKボタンをクリックしてみて下さい。
ソースコードは次の通りです。
<form id="numberForm">
<div style="background-color: #ccc; padding: 20px;">
<p>1からAまでの数字のうち、Bの倍数以外を出力します。</p>
<p>数値を入力してOKボタンをクリックしてください。</p>
<div style="display: inline-flex; gap: 8px; align-items: center; flex-wrap: wrap;">
<label for="inputA">A:</label>
<input type="number" id="inputA" min="1" step="1">
<label for="inputB">B:</label>
<input type="number" id="inputB" min="1" step="1">
<button type="submit">OK</button>
</div>
<div style="margin-top: 12px;">
<input type="text" id="outputResult" placeholder="こちらに出力されます" readonly style="width: 100%;">
</div>
</div>
</form>
<script>
const form = document.getElementById("numberForm");
const inputA = document.getElementById("inputA");
const inputB = document.getElementById("inputB");
const outputResult = document.getElementById("outputResult");
form.addEventListener("submit", (event) => {
event.preventDefault();
const numA = inputA.valueAsNumber;
const numB = inputB.valueAsNumber;
let result = "";
if (Number.isNaN(numA) || Number.isNaN(numB)) {
outputResult.value = "AとBに数値を入力してください";
return;
}
for (let i = 1; i <= numA; i++) {
if (i % numB === 0) {
continue;
}
result += i + " ";
}
outputResult.value = result.trim();
});
</script>
次のフローは、処理の大まかな流れをあらわしたものです。

このサンプルでは「OK」ボタンがクリックされたときに処理を実行するため、JavaScriptでイベントを登録しています。
form.addEventListener("submit", (event) => {
event.preventDefault();
// ...
});
以前はHTMLのボタンの onClick属性に関数名を書く(onClick="XXX()")方法もよく使われていましたが、現在は JavaScript側で「addEventListener()」を使ってイベントを設定する書き方が一般的です。
また、フォームの送信時にはページが再読み込みされることがあるため、event.preventDefault(); でそれを止めています。
次に、入力値の取得を行います。
type="number"のinput要素であれば、「.valueAsNumber」を使うことで、値を数値として取得できます。
const numA = inputA.valueAsNumber;
const numB = inputB.valueAsNumber;
input要素の値を「.value」で取得すると、取得値は文字列になるため、計算に使うにはNumber()で数値に変換する必要があります。valueAsNumberを使うと、この変換を省略できるだけでなく、未入力や不正な値のときに結果がNaNになるため、入力ミスに気づきやすくなります。
ここが、今回注目したい部分です。
for文では、iの値を1からnumAまで1ずつ増やしながら、繰り返し処理を行っています。
for (let i = 1; i <= numA; i++) {
if (i % numB === 0) {
continue;
}
result += i + " ";
}
「i % numB === 0」は、「iがnumBの倍数である」という意味の式です。
たとえばnumBが「3」の場合、iが「3」「6 」「9」などの3の倍数の時だけ、i % numB の結果が「0」になります(それぞれ「3 % 3」「6 % 3」「9 % 3」)。
一方、iが3の倍数以外だと、i % numB の結果は「0」以外になります(例「4 % 3」・・・結果は1)。
この事を利用して、i % numB === 0という条件に当てはまったときに「continue;」を実行すると、その回(つまりiがnumBの倍数の時)だけ、下の処理がスキップされます。
result += i + " ";
これは、出力用文字列の末尾に「iの値」と「スペース」を追加する処理です。結果として出力用文字列には、1からnumAまでのうちnumBの倍数を飛ばした数字だけが、スペースを空けて並んでいきます。for文のループは、iがnumAより大きくなると終了します。
outputResult.value = result.trim();
最後に、出力用文字列の末尾の空白をtrim()を使って取り除いたものを、出力欄に代入し表示しています。
【A】continue文は、switch文だけの中では使えません。continue はあくまで「ループを次の回に進める」ためのキーワードなので、 ループの中で使う必要があります。
【A】はい、増えます。continue を使っても、次の繰り返しに進むための更新処理(i++など)は行われます。
【A】カウンタを増減する処理の前に continue を実行すると、条件によっては無限ループになることがあります。while文でcontinueを使うときは、カウンタの更新処理をcontinueより前に書くようにしましょう。
【A】if文で処理を分ければ、continue文と同じ結果にすることができます。しかし continue のほうがネストが浅くなり、読みやすい事が多いです。
【A】いいえ、使えません。forEach文はfor文やwhile文とは異なり、配列の要素ごとに関数を呼び出す仕組みになっているため、continue や break を直接使うとエラーになります。途中の要素をスキップしたい場合は、forEach の中で return; を使うか、for文や for...of文に書き換える方法が一般的です。
JavaScript の continue文について、いかがでしたでしょうか。
「いつかプログラマーになりたいけど、独力では限界がある!」と感じている方には、「プログラマカレッジ」もおすすめです。
プログラマカレッジは、本気でプログラマーを目指す方のための就職支援付き、受講料無料のプログラミングスクールです。今回ご紹介したJavaScriptを含む豊富なカリキュラムで、IT初心者からプログラマーとして就職するまで、プロが完全にサポートします。
本気でプログラマーとして就職・転職したいという方は、ぜひ一度のぞいてみて下さいね。
→ 就職支援付き無料プログラミングスクール「プログラマカレッジ」
INTERNOUS,inc. All rights reserved.