フラグ

フラグ

フラグとは、コンピュータにおいて処理結果をTrue、Falseのいずれかの値で表す変数のことを指します。

古くからネットスラングなどでも「フラグが立った」という使い方がお馴染みです。

※本ページにはPRが含まれます。

「フラグを立てる」という使い方

プログラミングにおいて、主に「フラグを立てる」という使い方をします。

これは、特定のループ文などで、ある条件下において動作を決定付ける際に用います。コンピュータ利用者が、ある設定された動作を起こすことにより、後の処理の流れを決定づけることを言います。

この時、ユーザーが起こしたある行動、それにより起きた変化の目印が「フラグ」です。ユーザーの行動に目印となるフラグを立てることで、後の流れをわかりやすくしているのです。

フラグのタイプ

フラグは、データを入れておく「箱」をイメージするとわかりやすいです。

この「箱」にはデータが入り、そのデータによりのちのプログラム処理の方向性も大きく変わります。箱に入れるデータの内容、箱の大きさも自由に変えられます。

この箱のタイプをしっかり適正なものにしておかないと、プログラムの動作が遅くなるなど問題が発生します。

フラグのタイプをみてみましょう。

文字列型

その名の通り、ここに入るのは「文字列」です。あいうえお、ABCDEなどなど。この文字列型のフラグは容量が大きくなってしまうため、フラグの大きさをデータに合わせておかないと、プログラムの容量ばかり上がってしまいます。

ブーリアン型

フラグの中でもっとも容量が軽いのが、この「ブーリアン型」です。それもそのはず、このブーリアン型に入るデータは「1」か「0」かという条件のみ。

長い文字列などは入らず、「真」か「否」か、YESかNOかというパターンしか入ることはありません。ブーリアン型は容量が軽いので、ループ文を脱する際の条件分岐で利用されることが多いです。

数値型

12345などの数値が入れられて、計算などで使われるのが、この「数値型」のフラグです。

特定の動作を起こさせるための条件付け

フラグがあると何が起こるかというと、「分岐で処理を枝分かれさせる」というもの。

「◯◯が起こると、その後◯◯になる」という条件付け。この「◯◯が起きると」という内容には、「◯◯が入力されると」という場合もあります、

ストーリー上の「フラグ」

プログラミング以外の場面で語られる「フラグ」についても少し考えてみましょう。

「フラグが立った」と同じ使われ方をするフラグですが、元々の使い方とどんな違いがあるのでしょう?

重要な分岐が起こる際の「イベント」

例えば主人公が何か重要な決断をする。「俺は◯◯をする」。すると、それによりのちの展開がある程度決定づけられます。

例えば主人公が死んでしまう。または他のキャラクターが死んでしまう。主人公が何かを手に入れるなど。

過去のストーリーのパターンによりある程度その先の展開は決定づけられます。その時、「フラグが立った」という言葉が使われます。

語源は明らかになっていませんが、すでに長い間使われている言葉です。

まとめ

プログラミングにおける「フラグ」とは、その後の展開を条件付ける「データの容れ物」です。

例えば「ブーリアン型」のフラグに「1」というデータが入った時、その後の処理でどうなるか決まります。この時「1」が入った動作こそ「フラグが立った」状態となります。

ここから派生して、映画や漫画で、主人公がその先の展開を決定づける行動を起こしたときにも「フラグが立った」という使い方をします。