【JavaScript】whileとforの使い分け、ユースケースをそれぞれメリットとデメリットと一緒に実例を出して教えてください。
たまになんでかわからなくなります。
端的にいうと
- forは回数が決まっているもの
- whileはある条件に到達するまで
だという認識です
JavaScriptでは、whileループとforループは、繰り返し処理を実行するための主要なループ構造です。以下にそれぞれの使い分け、利点、デメリット、そして実例を説明します。
whileループ
whileループは、指定された条件がtrueである限り、ループを実行します。つまり、ループ内のブロックが実行される前に、条件が評価されます。whileループは以下のように書くことができます。
while (condition) {
// ループ内の処理
}
利点
whileループは、繰り返し回数が不明な場合に便利です。
条件式が単純である場合、forループよりもコードが簡潔になります。
デメリット
条件が永遠にtrueになる場合、ループが永遠に続く可能性があります(無限ループ)。
whileループは、ループの制御が難しくなる場合があります。
実例
whileループの実例として、1から10までの数字をループする場合を考えてみましょう。
let i = 1;
while (i <= 10) {
console.log(i);
i++;
}
このコードは、1から10までの数字を表示します。条件式 i <= 10 がtrueである限り、ループが実行され、 i の値が1ずつ増加します。
forループ
forループは、指定された回数だけループを実行します。ループ内で使用される変数は、ループ制御にのみ使用されます。forループは以下のように書くことができます。
for (initialization; condition; increment) {
// ループ内の処理
}
利点
forループは、繰り返し回数が明確である場合に便利です。
ループの制御が簡単であり、無限ループを防ぐことができます。
デメリット
forループは、条件式や初期化式が複雑になる場合があります。
コードが冗長になり、whileループよりも長くなる場合があります。
実例
forループの実例として、1から10までの数字をループする場合を考えてみましょう。
for (let i = 1; i <= 10; i++) {
console.log(i);
}
このコードは、1から10までの数字を表示します。初期化式で変数 i の値を1に設定し、条件式 i <= 10 がtrueである限りループを実行し、 i の値を1ずつ増加させます。
使い分け
whileループとforループは、いずれも同じように繰り返し処理を実行できますが、次のように使い分けることが一般的です。
繰り返し回数が明確な場合、forループを使用します。
繰り返し回数が不明な場合、または条件に基づいてループを実行する場合は、whileループを使用します。
ループ制御が複雑である場合、またはループ内の処理によって条件が変更される場合は、whileループを使用します。
単純な繰り返し処理である場合、またはループ制御が簡単な場合は、forループを使用します。
例えば、以下のような状況では、whileループを使用することが適切です。
let i = 0;
while (i < array.length && array[i] !== value) {
i++;
}
ここでは、配列 array の中から値 value を探しています。 i の値は、配列のインデックスを表しています。条件式 i < array.length && array[i] !== value がtrueである限り、ループを実行し、 i の値を1ずつ増加させます。
一方、以下のような状況では、forループを使用することが適切です。
for (let i = 0; i < 10; i++) {
console.log(i);
}
ここでは、 i の値が0から9までの数字を表示しています。繰り返し回数が10回であるため、forループを使用することが適切です。
以上が、JavaScriptでwhileループとforループの使い分け、利点、デメリット、実例についての解説です。