フラグとは、コンピュータにおいて処理結果をTrue、Falseのいずれかの値で表す変数のことを指します。
古くからネットスラングなどでも「フラグが立った」という使い方がお馴染みです。
※本ページにはPRが含まれます。
目次
「フラグを立てる」という使い方
プログラミングにおいて、主に「フラグを立てる」という使い方をします。
これは、特定のループ文などで、ある条件下において動作を決定付ける際に用います。コンピュータ利用者が、ある設定された動作を起こすことにより、後の処理の流れを決定づけることを言います。
この時、ユーザーが起こしたある行動、それにより起きた変化の目印が「フラグ」です。ユーザーの行動に目印となるフラグを立てることで、後の流れをわかりやすくしているのです。
フラグのタイプ
フラグは、データを入れておく「箱」をイメージするとわかりやすいです。
この「箱」にはデータが入り、そのデータによりのちのプログラム処理の方向性も大きく変わります。箱に入れるデータの内容、箱の大きさも自由に変えられます。
この箱のタイプをしっかり適正なものにしておかないと、プログラムの動作が遅くなるなど問題が発生します。
フラグのタイプをみてみましょう。
文字列型
その名の通り、ここに入るのは「文字列」です。あいうえお、ABCDEなどなど。この文字列型のフラグは容量が大きくなってしまうため、フラグの大きさをデータに合わせておかないと、プログラムの容量ばかり上がってしまいます。
ブーリアン型
フラグの中でもっとも容量が軽いのが、この「ブーリアン型」です。それもそのはず、このブーリアン型に入るデータは「1」か「0」かという条件のみ。
長い文字列などは入らず、「真」か「否」か、YESかNOかというパターンしか入ることはありません。ブーリアン型は容量が軽いので、ループ文を脱する際の条件分岐で利用されることが多いです。
数値型
12345などの数値が入れられて、計算などで使われるのが、この「数値型」のフラグです。
特定の動作を起こさせるための条件付け
フラグがあると何が起こるかというと、「分岐で処理を枝分かれさせる」というもの。
「◯◯が起こると、その後◯◯になる」という条件付け。この「◯◯が起きると」という内容には、「◯◯が入力されると」という場合もあります、
ストーリー上の「フラグ」
プログラミング以外の場面で語られる「フラグ」についても少し考えてみましょう。
「フラグが立った」と同じ使われ方をするフラグですが、元々の使い方とどんな違いがあるのでしょう?
重要な分岐が起こる際の「イベント」
例えば主人公が何か重要な決断をする。「俺は◯◯をする」。すると、それによりのちの展開がある程度決定づけられます。
例えば主人公が死んでしまう。または他のキャラクターが死んでしまう。主人公が何かを手に入れるなど。
過去のストーリーのパターンによりある程度その先の展開は決定づけられます。その時、「フラグが立った」という言葉が使われます。
語源は明らかになっていませんが、すでに長い間使われている言葉です。
まとめ
プログラミングにおける「フラグ」とは、その後の展開を条件付ける「データの容れ物」です。
例えば「ブーリアン型」のフラグに「1」というデータが入った時、その後の処理でどうなるか決まります。この時「1」が入った動作こそ「フラグが立った」状態となります。
ここから派生して、映画や漫画で、主人公がその先の展開を決定づける行動を起こしたときにも「フラグが立った」という使い方をします。