⊗jsPmLpFl 165 of 505 menu

JavaScriptにおけるフラグの操作

これから、フラグの操作方法を学びます。 フラグとは、truefalseの 2つの値のみを取ることができる特殊な変数です。 フラグを使用すると、何かの不在を確認する 問題を解決できます:例えば、配列内に特定の値を持つ 要素がないことを確認することができます。 さあ、始めましょう。

次の問題を解決してみましょう:数値の配列が与えられ、 その中に値3を持つ要素が存在するか どうかを確認する必要があります。存在する場合は '+++'を出力し、存在しない場合は '---'を出力します。

まず、'+++'を出力することを試みましょう。 そのために配列のすべての要素をループ処理し、 if文で現在の要素が値3に等しいかどうかを 確認します。等しい場合は'+++'を出力します:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); } }

しかし、この解決策はあまり良くありません: 配列に値3が1つではなく複数ある場合、 '+++'が複数回出力されてしまいます。 配列を修正して(値3の要素を2つにして)、 これを確認してみましょう:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // 複数回出力される } }

問題を修正しましょう:要素が見つかったら breakを使用してループを終了します:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); break; // ループを終了する } }

次に、配列に値3の要素がまったく存在しない場合に、 '---'を出力するようにしてみましょう。 よくある誤りは、if文にelseを追加することです。 これでは、3ではないすべての要素に対して '---'が出力されてしまいます:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // 要素3で出力される } else { console.log('---'); // 要素1, 2, 4, 5で出力される } }

つまり、elseを追加するという考えは、 うまく機能しない悪い考えです。この種の問題 (この種の問題は非常に頻繁に発生します)を解決するために、 いわゆるフラグが使用されます。

上記で述べたように、フラグとは、 trueまたはfalseの 2つの値のみを取ることができる変数です。

では、変数flagを作成し、次のような意味を持たせましょう: この変数がtrueに等しい場合、配列には要素3が存在し、 falseの場合、そのような要素は存在しません。

最初に変数flagを値falseに設定します。 つまり、配列に要素3は存在しないと見なします:

let arr = [1, 2, 3, 4, 5]; let flag = false; // 配列に要素3はないと見なす

次に、以前と同じようにif文を使用してループを実行します。 ループが配列に要素3があることを検出した場合、 変数flagを値trueに設定し、 breakを使用してループを抜けます:

let arr = [1, 2, 3, 4, 5]; let flag = false; // 配列に要素3はないと見なす for (let elem of arr) { if (elem == 3) { flag = true; // 要素が存在する - 変数flagを再定義する break; // ループを抜ける } }

配列に3が存在するかどうかの質問への答えは、 ループの後にのみ与えることができます。 そして、その答えはすでに得られています:ループの後、 変数flagfalseのままか、 またはループが配列内の3を検出した場合に その値をtrueに変更している可能性があります:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // ここで変数flagはtrueまたはfalse

これで、ループの後にif文を使用して、 変数flagを確認し、画面に'+++' または'---'を出力することができます:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } if (flag === true) { console.log('+++'); } else { console.log('---'); }

次の配列が与えられています:

let arr = ['a', 'b', 'c', 'd', 'e'];

この配列に要素'c'が含まれているか 確認してください。含まれている場合は '+++'を出力し、含まれていない場合は '---'を出力してください。

ある数が素数かどうかをチェックする コードを書いてください。 素数とは、1とそれ自身でのみ割り切れ、 他の数では割り切れない数のことです。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否