このページでは、JavaScriptでよく使われるfor文の書き方や注意点などを、初心者の方にも分かりやすく解説しています。
基本的な書き方から応用まで、しっかり学べる内容になっていますのでよければ参考にしてみてください。
ノーノちゃん
ぶたさん
このページの目次
1. JavaScript for文とは?
まずはじめにJavaScriptのfor文について解説します。
同じような処理をくり返す
for文とは「同じような処理を何度もくり返したい」というときに使うものです。
たとえば「1から7までの数字を順番に表示したい」という場合、通常は次のように同じようなコードを並べて書きますよね。
console.log(1);
console.log(2);
console.log(3);
console.log(4);
console.log(5);
console.log(6);
console.log(7);
1
2
3
4
5
6
7
この書き方でも問題ありませんが、数が増えるとコードが長くなってしまうというデメリットがあります。
こういったときfor文を使えば、次のようにたった数行のコードを書くだけで済みます。
for (let i = 1; i < 8; i++) {
console.log(i);
}
1
2
3
4
5
6
7
このようにfor文を使えば、本来なら同じようなコードを何行も書かなければならないところを、たった数行で済ませることができます。
プログラミングにおいて、シンプルで見やすく、無駄のないコードを書くことがとても重要です。
for文はその第一歩ともいえる基本的な構文なので、しっかりと覚えておきましょう。
ノーノちゃん
ぶたさん
基本的な書き方
部分 | コード例 | 意味 |
---|---|---|
初期値 |
let i = 1 |
ループ処理を開始する際の最初の値 |
条件式 |
1 < 5 |
ループ処理がいつ終わるかを決める |
増減値 |
i++ |
増やし方・減らし方 (くり返すごとにどれだけ数が増えるか、減るかを設定) |
処理内容 |
console.log() |
ループしたい処理を書く |
for文の基本的な書き方は、()
の中に3つの引数(初期値、条件式、増減値)を書きます。
そのあと、{}
の中にループしたい処理内容を書けば完成です。
ノーノちゃん
ぶたさん
for文で使う記号
記号 | 意味 | 例 |
---|---|---|
> |
左が右より大きい | 5 > 3 |
< |
右が左より大きい | 3 < 5 |
>= |
左が右より大きい (または同じ) |
5 >= 3 |
< = |
右が左より大きい (または同じ) |
3 < = 5 |
== |
左と右の値が同じ | i == 5 |
=== |
左と右の値と種類が同じ | i === 5 |
!= |
左と右の値が同じでない | i != 5 |
!== |
左と右の値と種類が同じでない | i !== 5 |
1 < 5 // 数字の大きさで比較
a < b // アルファベット順で比較
あ < い // あいうえお順で比較
ノーノちゃん
i
と5
なんてどう比較するの?i
の中に入っている数値と、数値の5
を比較しています。ぶたさん
2. for文の書き方(基礎編)
ここではJavaScriptのfor文の書き方を詳しく解説しています。
基本的な構文の書き方や、実際にfor文を使ったコード例も紹介しているので、ぜひ参考にしてください。
for文(基本形)

コードの書き方
for (初期値; 条件式; 増減値) {
// 処理内容
}
コードの例と解説
for (let i = 1; i < 5; i++) {
console.log(i);
}
1
2
3
4
5
for (let i = 1; i < 5; i++)
「i」という名前の変数をつくり、その中に初期値の1を入れる。「i」が「5」より小さい間だけ繰り返しを行う。「i」は繰り返しのたびに1ずつ増えていく。console.log(i);
変数「i」の中身をコンソール画面に表示する。
for (let i = 1; i < 5; i++) {
console.log(i);
}
コード | 種別 | 意味 |
---|---|---|
for |
制御構文 | 指定した回数だけ処理をくり返す命令 |
() |
カッコ | for文の制御部分を囲むカッコ |
let |
変数宣言 キーワード |
中身を変えられる変数(箱)を作るという宣言 |
i |
カウンタ変数 | 何回処理をくり返したか数えるための変数 |
= |
代入演算子 | 右のものを左に入れる |
1 |
初期値 | くり返しをスタートする際の最初の値 |
; |
区切り記号 | 文末につける記号 |
< |
比較演算子 | 「未満」を表す記号 |
i < 5 |
条件式 | i が5 未満の間は処理を繰り返す |
++ |
インクリメント 演算子 |
1ずつ増やす |
{} |
ブロック スコープ |
{} 内にくり返したい処理を書く |
for…in文(オブジェクトを処理)

コードの書き方
const オブジェクト名 = {
キー: 値,
キー: 値,
};
for(let 変数名 in オブジェクト名) {
// 処理内容
}
コードの例と解説
const person = {
name: "たろう", // キー: 値
age: 20, // キー: 値
job: "エンジニア" // キー: 値
};
for (let key in person) {
console.log(`${key}: ${person[key]}`); // 処理内容
}
name: たろう
age: 20
job: エンジニア
const person = {...};
「person」という名前の変数を作り、オブジェクト{}の中に「キー」と「値」を入れる。for (let key in person)
「person」の中にある「キー(name, age, job)」を1つずつ取り出して、「key」という変数に入れる繰り返しを始める。console.log(`${key}: ${person[key]}`);
取り出したキー(key)と、その中の値(person[key])をコンソール画面に表示する。
【オブジェクトのコード】
const person = {
name: "たろう", // プロパティ(キー + 値)
age: 20, // プロパティ (キー + 値)
job: "エンジニア" // プロパティ(キー + 値)
};
コード | 種別 | 意味 |
---|---|---|
const |
変数宣言 キーワード |
変更できない変数(箱)を作る宣言 |
person |
変数名 | 変数(箱)の名前 |
= |
代入演算子 | 右のものを左に入れる |
{} |
オブジェクト | 引き出し付きの箱 (複数のデータを1つにまとめたもの) |
name: "たろう" age: 20 job: "エンジニア" |
プロパティ | 引き出しの名前(ラベル) |
name age job |
キー | 引き出し |
たろう 20 エンジニア |
値 | 引き出しの中のデータ |
"" |
囲い記号 | 囲まれたものを文字列として扱う |
, |
カンマ演算子 | 左から順に実行して最後だけ使う |
; |
区切り記号 | 文末につける記号 |
【for文のコード】
for (let key in person) {
console.log(`${key}: ${person[key]}`);
}
コード | 種別 | 意味 |
---|---|---|
for |
制御構文 | 指定した回数だけ処理をくり返す命令 |
() |
カッコ | for文の制御部分 |
let |
変数宣言 キーワード |
中身を変えられる変数(箱)を作るという宣言 |
key |
変数名 | 変数(箱)の名前 |
in |
演算子 | オブジェクトの中のキーを順番に取り出す |
person |
変数 (オブジェクト) |
変数person の中にあるオブジェクト |
{} |
ブロック スコープ |
{} 内にくり返したい処理を書く |
console.log() |
出力命令 | () の中身をコンソールに表示 |
`` |
テンプレート リテラル記号 |
文字列の始まりと終わりを示す |
${key} |
プレース ホルダ |
key という変数の中身を入れる |
${person[key]} |
プレース ホルダ |
key という変数の中身にあるデータを入れる |

for…of文(配列などを順番に処理)

コードの書き方
const 配列名 = ["配列1", "配列2", "配列3"];
for (const 変数名 of 配列名) {
// 処理内容
}
コードの例と解説
const fruits = ["りんご", "みかん", "バナナ"];
for (const basket of fruits) {
console.log(basket); // 処理内容
}
りんご
みかん
バナナ
const fruits = ["りんご", "みかん", "バナナ"];
「fruits」という名前の変数を作り、配列リテラル[ ]にりんご、みかん、バナナを入れる。for (const basket of fruits)
変数「fruits」の中にある配列[“りんご”, “みかん”, “バナナ”]を1つずつ取り出して、「basket」という変数に入れる繰り返しを始める。console.log(basket);
変数「basket」の中身をコンソール画面に表示する。
const fruits = ["りんご", "みかん", "バナナ"];
コード | 種別 | 意味 |
---|---|---|
const |
変数宣言 キーワード |
中身を変更できない変数(箱)を作る宣言 |
fruits |
変数名 | 変数(箱)の名前 |
= |
代入演算子 | 右のものを左に入れる |
[] |
配列リテラル | 配列。複数のデータを1つにまとめられる箱 |
"りんご" "みかん" "バナナ" |
文字列 | 配列に入っているデータ |
; |
区切り記号 | 文末につける記号 |
【for文のコード】
for (const basket of fruits) {
console.log(basket);
}
コード | 種別 | 意味 |
---|---|---|
for |
制御構文 | 指定した回数だけ処理をくり返す命令 |
() |
カッコ | for文の制御部分 |
const |
変数宣言 キーワード |
中身を変更できない変数(箱)を作るという宣言 |
basket |
変数名 | 1個ずつ取り出した果物が入る箱の名前 |
of |
演算子 | 〜の中から順番に取り出す |
fruits |
変数 | 取り出す対象 「りんご,みかん,バナナ」の入った配列 |
{} |
ブロック スコープ |
{} 内にくり返したい処理を書く |
console.log() |
出力命令 | () の中身をコンソールに表示 |

forEach文(配列を処理)

コードの書き方
const 配列名 = ["値1", "値2", "値3"];
配列名.forEach(function(変数名) {
// 処理内容
});
コードの例と解説
const snacks = ["チョコ", "ポテチ", "クッキー"];
snacks.forEach(function(basket) {
console.log(basket);
});
チョコ
ポテチ
クッキー
const snacks = ["チョコ", "ポテチ", "クッキー"];
「snacks」という名前の変数を作り、配列 [“チョコ”, “ポテチ”, “クッキー”] を入れる。snacks.forEach(function(basket)
配列「snacks」の中身を1つずつ取り出して、「basket」という名前の変数に入れる。console.log(basket);
変数「basket」の中身をコンソール画面に表示する。
const snacks = ["チョコ", "ポテチ", "クッキー"];
コード | 種別 | 意味 |
---|---|---|
const |
変数宣言 キーワード |
中身を変更できない変数(箱)を作る宣言 |
snacks |
変数名 | 変数(箱)の名前 |
= |
代入演算子 | 右のものを左に入れる |
[] |
配列リテラル | 配列。複数のデータを1つにまとめられる箱 |
"チョコ" "ポテチ" "クッキー" |
文字列 | 配列に入っているデータ |
; |
区切り記号 | 文末につける記号 |
【for文のコード】
for (const basket of fruits) {
console.log(basket);
}
コード | 種別 | 意味 |
---|---|---|
snacks |
変数名 | 繰り返し処理の対象の変数(配列) |
forEach |
制御構文 | 配列の中身を1つずつ取り出して、指定した処理をくり返す |
() |
カッコ | for文の制御部分 |
function(basket) |
関数定義 キーワード |
取り出したデータを受け取って処理をする関数(ここでbasketに1つずつお菓子が入る) |
{} |
ブロック スコープ |
{} 内にくり返したい処理を書く |
console.log() |
出力命令 | () の中身をコンソールに表示 |
3. for文の書き方(応用編)
ここでは、JavaScriptのfor文を応用した使い方をご紹介しています。
for文とif文を組み合わせ

コードの書き方
for (初期値; 条件式; 増減値) {
if (条件) {
//処理内容
}
}
コードの例と解説
たとえば、1〜8の数字から偶数だけを抽出して表示したいという場合、以下のようにfor文とif文を組み合わせて書きます。
for (let i = 1; i < 9; i++) {
if (i % 2 === 0) {
console.log(`${i} は偶数です`);
}
}
2 は偶数です
4 は偶数です
6 は偶数です
8 は偶数です
for (let i = 1; i < 9; i++)
i」という名前の変数をつくり、その中に初期値の1を入れる。「i」が「9」より小さい間だけ繰り返しを行う。「i」は繰り返しのたびに1ずつ増えていく。if (i % 2 === 0)
「i」を2で割ったとき余りが0になるものをチェックする。(偶数かチェックする)console.log(`${i} は偶数です`);
先ほど処理した変数「i」の中身と、「は偶数です」という文字列をまとめてコンソール画面に表示する。
for (let i = 1; i < 9; i++) {
if (i % 2 === 0) {
console.log(`${i} は偶数です`);
}
}
コード | 種別 | 意味 |
---|---|---|
for |
制御構文 | 指定した回数だけ処理をくり返す命令 |
() |
カッコ | for文の制御部分を囲むカッコ |
let |
変数宣言 キーワード |
中身を変えられる変数(箱)を作るという宣言 |
i |
カウンタ変数 | 何回処理をくり返したか数えるための変数 |
= |
代入演算子 | 右のものを左に入れる |
1 |
初期値 | くり返しをスタートする際の最初の値 |
; |
区切り記号 | 文末につける記号 |
< |
比較演算子 | 「未満」を表す記号 |
i < 9 |
条件式 | i が6 未満の間は処理を繰り返す |
i++ |
インクリメント 演算子 |
i の値を1ずつ増やす |
if |
制御構文 | 「もし〇〇だったらこうする」と判断する命令 |
=== |
厳密等価 演算子 |
中身が等しい(同値、同種類)かチェックする |
i % 2 === 0 |
条件式 | i が偶数かどうかをチェック |
`` |
テンプレート リテラル |
変数を文字の中に埋めこむ時などに使う |
${} |
プレース ホルダ |
「{} 内に変数や式を入れるよ」という合図 |
は偶数です |
文字列 | ただの文字 |
console.log() |
出力命令 | () の中身をコンソールに表示 |
for文で配列に格納する

コードの書き方
const 配列名 = []; // 空の配列を作成
for (初期値; 条件式; 増減値) {
配列名.push(変数名);
}
//処理内容
コードの例と解説
たとえば、0から4までの数字を配列に追加したいという場合、以下のように書きます。
const array = []; // 空の配列を作成
for (let i = 0; i < 5; i++) {
array.push(i);
}
console.log(array); //処理内容
[0, 1, 2, 3, 4]
const array = [];
「array」という中身が空の変数を作る。for (let i = 0; i < 5; i++)
「i」という名前の変数をつくり、その中に初期値の0を入れる。「i」が「5」より小さい間だけ繰り返しを行う。「i」は繰り返しのたびに1ずつ増えていく。array.push(i);
「i」の値を配列「array」に追加していく。console.log(array)
配列「array」の中身をコンソール画面に表示する。
const array = []; // 空の配列を用意
for (let i = 0; i < 5; i++) {
array.push(i);
}
console.log(array);
コード | 種別 | 意味 |
---|---|---|
const |
変数宣言 キーワード |
中身を変更できない変数(箱)を作る宣言 |
array |
変数名 | 変数(箱)の名前 |
= |
代入演算子 | 右のものを左に入れる |
[] |
配列リテラル | 配列。複数のデータを1つにまとめられる箱 |
for |
制御構文 | 指定した回数だけ処理をくり返す命令 |
() |
カッコ | for文の制御部分を囲むカッコ |
let |
変数宣言 キーワード |
中身を変えられる変数(箱)を作るという宣言 |
i |
カウンタ変数 | 何回処理をくり返したか数えるための変数 |
= |
代入演算子 | 右のものを左に入れる |
0 |
初期値 | くり返しをスタートする際の最初の値 |
; |
区切り記号 | 文末につける記号 |
< |
比較演算子 | 「未満」を表す記号 |
i < 5 |
条件式 | i が6 未満の間は処理を繰り返す |
i++ |
インクリメント 演算子 |
i の値を1ずつ増やす |
array.push(i) |
配列メソッド | 配列array にi の値を追加する |
console.log() |
出力命令 | () の中身をコンソールに表示 |
lengthを使って配列を処理

length
を使って配列をくり返し処理する方法です。length
(レングス) は、主に文字列の文字数や、配列の中にあるデータの数を取得するためのものです。
たとえば、次のように変数a
に入っている文字列「おはよう」の文字数を知りたいときに使います。
const a = "おはよう"
console.log(s.length)
4
このlength
とfor文と組み合わせることで、配列の中身を順番に取り出すことができます。
コードの書き方
const 配列名 = [値1, 値2, 値3];
for (初期値; 条件式; 配列名.length; 増減値) {
// 処理内容
}
コードの例と解説
const colors = ["赤色", "青色", "黄色"];
for (let i = 0; i < colors.length; i++) {
console.log(colors[i]); // 処理内容
}
赤色
青色
黄色
const colors = ["赤色", "青色", "黄色"];
「colors」という名前の変数を作り、配列 ["赤色", "青色", "黄色"] を入れる。for (let i = 0; i < colors.length; i++)
「i」という名前の変数をつくり、その中に初期値の0を入れる。「i」が配列の数より小さい間だけくり返しを行う。「i」は繰り返しのたびに1ずつ増えていく。console.log(basket);
配列「colors」の中身を順番にコンソール画面に表示する。
const colors = ["赤色", "青色", "黄色"];
コード | 種別 | 意味 |
---|---|---|
const |
変数宣言 キーワード |
中身を変更できない変数(箱)を作る宣言 |
colors |
変数名 | 変数(箱)の名前 |
= |
代入演算子 | 右のものを左に入れる |
[] |
配列リテラル | 配列。複数のデータを1つにまとめられる箱 |
"赤色" "青色" "黄色" |
文字列 | 配列に入っているデータ |
; |
区切り記号 | 文末につける記号 |
【for文のコード】
for (let i = 0; i < colors.length; i++) {
console.log(colors[i]);
}
コード | 種別 | 意味 |
---|---|---|
for |
制御構文 | 指定した回数だけ処理をくり返す命令 |
() |
カッコ | for文の制御部分を囲むカッコ |
let |
変数宣言 キーワード |
中身を変えられる変数(箱)を作るという宣言 |
i |
カウンタ変数 | 何回処理をくり返したか数えるための変数 |
= |
代入演算子 | 右のものを左に入れる |
1 |
初期値 | くり返しをスタートする際の最初の値 |
; |
区切り記号 | 文末につける記号 |
< |
比較演算子 | 「未満」を表す記号 |
colors.length |
プロパティ 参照 |
配列colors の中のデータの数(ここでは3)を取得 |
i++ |
インクリメント 演算子 |
i の値を1ずつ増やす |
colors[i] |
制御構文 | 配列colors の中のi 番目のデータを取り出す |
console.log() |
出力命令 | () の中身をコンソールに表示 |
4. for文の書き方(処理を抜ける)
for文を使用していると次のような状況になることがありますよね。
- 「途中でループ処理を抜けたい」
- 「特定の回だけループ処理をスキップしたい」
ここでは、こういったfor文によるループ処理を抜ける、またはスキップする方法をご紹介しています。
ノーノちゃん
ぶたさん
break(途中で処理を抜ける)

for (let i = 1; i < 6; i++) {
if (i === 3) {
break; // iが3になったらループを終了
}
console.log(i);
}
1
2
for (let i = 1; i < 6; i++)
i」という名前の変数をつくり、その中に初期値の1を入れる。「i」が「6」より小さい間だけ繰り返しを行う。「i」は繰り返しのたびに1ずつ増えていく。if (i === 3) {break;}
「i」が「3」になったときループ処理を終了する。console.log(i);
変数「i」の中身をコンソール画面に表示する。
for (let i = 1; i < 6; i++) {
if (i === 3) {
break;
}
console.log(i);
}
コード | 種別 | 意味 |
---|---|---|
for |
制御構文 | 指定した回数だけ処理をくり返す命令 |
() |
カッコ | for文の制御部分を囲むカッコ |
let |
変数宣言 キーワード |
中身を変えられる変数(箱)を作るという宣言 |
i |
カウンタ変数 | 何回処理をくり返したか数えるための変数 |
= |
代入演算子 | 右のものを左に入れる |
1 |
初期値 | くり返しをスタートする際の最初の値 |
; |
区切り記号 | 文末につける記号 |
< |
比較演算子 | 「未満」を表す記号 |
i < 6 |
条件式 | i が6 未満の間は処理を繰り返す |
i++ |
インクリメント 演算子 |
i の値を1ずつ増やす |
if |
制御構文 | 「もし〇〇だったらこうする」と判断する命令 |
=== |
厳密等価演算子 | 中身が等しい(同値、同種類)かチェックする |
i === 3 |
条件式 | i が3と等しいかどうかを判定する |
break |
制御構文 | 条件が合ったとき、ループを途中で終了して抜け出す |
console.log() |
出力命令 | () の中身をコンソールに表示 |
continue(特定の回だけスキップ)

for (let i = 1; i < 6; i++) {
if (i === 3) {
continue; // 3のときはスキップして次のループへ
}
console.log(i);
}
1
2
4
5
for (let i = 1; i < 6; i++)
i」という名前の変数をつくり、その中に初期値の1を入れる。「i」が「6」より小さい間だけ繰り返しを行う。「i」は繰り返しのたびに1ずつ増えていく。if (i === 3) {continue;}
「i」が「3」のときは「continue」によりこの回の処理(console.log(i))をスキップして、次のiのループへ進む。console.log(i);
変数「i」の中身をコンソール画面に表示する。
for (let i = 1; i < 6; i++) {
if (i === 3) {
continue;
}
console.log(i);
}
コード | 種別 | 意味 |
---|---|---|
for |
制御構文 | 指定した回数だけ処理をくり返す命令 |
() |
カッコ | for文の制御部分を囲むカッコ |
let |
変数宣言 キーワード |
中身を変えられる変数(箱)を作るという宣言 |
i |
カウンタ変数 | 何回処理をくり返したか数えるための変数 |
= |
代入演算子 | 右のものを左に入れる |
1 |
初期値 | くり返しをスタートする際の最初の値 |
; |
区切り記号 | 文末につける記号 |
< |
比較演算子 | 「未満」を表す記号 |
i < 6 |
条件式 | i が6 未満の間は処理を繰り返す |
i++ |
インクリメント 演算子 |
i の値を1ずつ増やす |
if |
制御構文 | 「もし〇〇だったらこうする」と判断する命令 |
=== |
厳密等価演算子 | 中身が等しい(同値、同種類)かチェックする |
i === 3 |
条件式 | i が3と等しいかどうかを判定する |
continue |
制御構文 | 条件が合う回のループ処理をスキップ |
console.log() |
出力命令 | () の中身をコンソールに表示 |
5. for文の注意点
ここではfor文を使う際の注意点を解説しています。
書き方を間違えると無限ループになる
for文を使うときに最も注意すべき点は無限ループの発生です。
無限ループとは、プログラムの繰り返し処理(ループ)が終わらずにずっと続く状態のことを指します。
for文は条件を正しく設定しなかったり、書き方を間違ってしまうだけで、かんたんに無限ループが発生しますので注意が必要です。
for (let i = 1; i > 0; i++) {
console.log(i);
}
このコードは「i
が0
より大きい間は、i
の値を1ずつ増やしていく」という意味です。
i = 1
で始まっているので、ずっと0
より大きい状態が続くため、繰り返しが止まらず無限ループになります。
このようにかんたんに無限ループが発生してしまうので、for文を書くときは「このループは本当に止まるのか?」を必ず確認しましょう。
ノーノちゃん
ぶたさん
ぶたさん
大量にくり返しをさせると重くなる
for文を使うときの注意点は大量に処理をくり返しさせることです。
大量に繰り返し処理をさせると、パソコンやブラウザの動作が遅くなったり、フリーズすることがあります。
無限ループをしていない限り、処理はいつか終わりますが、回数が多すぎるとシステムに負担がかかりますので注意が必要です。
特に、レンタルサーバーにアップしている場合、大量の繰り返し処理を実行すると、サーバーにかなり負担がかかるので気をつけてください。
6. よくある質問
ここではJavaScriptのfor文についてよくある質問をご紹介しています。
オブジェクトとは?
オブジェクトとは、複数の情報をひとつにまとめて入れることができる便利な箱のようなものです。
分かりやすく表すと以下のような感じです。
変数名 | フォルダの名前 |
---|---|
オブジェクト | フォルダの中身 |
プロパティ | 各ファイル(ファイルの名前+ファイルの中身) |
キー | ファイルの名前 |
値 | ファイルの中身 |
ぶたさん
配列とは?
配列とは、複数の情報を順番にまとめて入れられる箱のことです。
かんたんに言うと、配列リテラル[]
に囲まれているものだと考えていただければOKです。
ノーノちゃん
ぶたさん
オブジェクト | 配列 | |
---|---|---|
たとえ | フォルダ | リスト |
役割 | 名前付きの情報をまとめる | 順番のある情報をまとめる |
管理方法 | 名前(キー) | 順番(インデックス番号) |
順番の有無 | 重要ではない | とても重要 |
書き方 | { name: "たろう", age: 20 } |
[ "りんご", "バナナ", "みかん" ] |
カウンタ変数とは?
カウンタ変数とは「ループ処理を何回くり返したか」を数えるために使う変数のことです。
具体的にはループが実行された回数を記録するために使われます。
たとえば、次のようなコードがあります。
for (let i = 1; i < 5; i++) {
console.log(i);
}
このときに使われているi
がカウンタ変数になります。
i
は「index(インデックス)」の頭文字で、カウンタ変数としてよく使われる名前ですので覚えておきましょう。
カウンタ変数は「i」以外だめ?
結論から言うと、i
以外の名前を使っても問題ありません
多くの方がカウンタ変数にi
,j
,k
...と順番に使いますが、意味が分かりにくいと感じるなら自分で好きな名前をつけましょう。
たとえば、次のように日付に関する処理をしたい場合…
for (let day = 1; day < 7; day++) {
console.log(`今日は${day}日目です`);
}
このようにday
とつけると「これは日付の変数なんだな」と一目で分かるのでいいかもしれません。
i
,j
,k
...以外にすると、混乱を招いてしまう可能性もあるので注意しましょう。ぶたさん
while文との違いは?
「for文とwhile文ってどちらもくり返し処理じゃないの?」という方がいると思います。
for文とwhile文の違いは次のようになります。
for文 | while文 | |
---|---|---|
構文 | for (初期値;条件式;増減値) |
while (条件式) |
特徴 | 指定した回数処理をくり返す | 条件を満たしている間くり返し処理を続ける |
終了のタイミング | 指定した回数に達したら | 条件式がfalse(成立していない)になったとき |
主な用途 | 配列の要素を順に処理や一定回数の繰り返しする時 | ユーザーの入力待ちや、状態の変化を監視する処理など |
ぶたさん
配列の合計を出したい
配列の合計を出したい場合は、for文ではなくreduce
を使うことをおすすめします。
reduce
とは、配列の中にある値(データ)を1つにまとめるための関数です。数値の合計や、文字列を結合して1つにまとめることができます。
たとえば、「1,2,3,4,5
」という配列の合計を出したい場合は次のように書きます。
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce(function(a, b) {
return a + b;
});
console.log(sum);
15
const numbers = [1, 2, 3, 4, 5];
「numbers」という名前の変数を作り、1から5までの数字が入った配列を作る。numbers.reduce(function(a, b) { return a + b; });
配列の「1」を「a」、「2」を「b」に入れ合計する。その合計を「a」に入れ、次の値「3」を「b」に入れ合計する。これをくり返す。const sum = ...
合計の結果を「sum」という変数に入れる。console.log(sum);
変数「sum」の中身をコンソール画面に表示する。
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce(function(a, b) {
return a + b;
});
console.log(sum);
コード | 種別 | 意味 |
---|---|---|
const |
変数宣言 キーワード |
中身を変更できない変数(箱)を作る宣言 |
snacks |
変数名 | 変数(箱)の名前 |
= |
代入演算子 | 右のものを左に入れる |
[] |
配列リテラル | 配列。複数のデータを1つにまとめられる箱 |
[1, 2, 3, 4, 5] |
配列 | 配列に入っているデータ |
; |
区切り記号 | 文末につける記号 |
sum |
変数名 | 計算された合計を入れるための変数(箱) |
reduce |
関数 | 配列の中身のデータを1つにまとめる |
function(a, b) |
関数 | 配列の数字をどうやって計算するかを伝える |
a |
引数 | これまでの合計(最初は1番目の値) |
b |
引数 | 今から足す値 |
return a + b |
return文 | 足した結果を返して、次のreduce の処理に渡す |
console.log() |
出力命令 | () の中身をコンソールに表示 |
7. まとめ
for文は同じような処理をくり返したいときに使う構文です。
基本的には「for文」「for..in文」「for..of文」「forEach文」の4つの構文があり、それぞれの特徴に応じて使い分けます。
if文(条件分岐)や関数などと組み合わせて使うこともできるので、いろいろ試してみるといいかもしれません。
- for文は同じような処理をくり返したいときに使う
- for文は4つの書き方がある
- ループ処理を抜ける場合はbreak/continueを使う
- 書き方を間違えると無限ループになるので注意