フラグを立てる
オン(on)/オフ(off)の判定に使う変数に「オン(on)」に相当する値を入れるよ
プログラミングの話で出てくるかもしれないよ
簡単に書くよ
フラグを立てる(読:フラグヲタテル)とは
プログラミングの話で出てくることがある表現のひとつ
であり
「オン(on)」か「オフ(off)」のどちらかの状態を表す値が入る変数
(プログラミングにおける値を入れておく箱)(フラグ)に「オン(on)」に相当する値を設定すること
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・変数
・true
・false
・フラグ
について説明します。
特に「フラグ」については、結構ガッツリ説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
変数は「プログラミング言語における『値を入れておく箱』」です。
処理の途中で値を入れたり、逆に取り出したりできます。
「true」は「オン(on)/オフ(off)」の表現の片割れで「オン(on)」を意図する表現です。
ピヨ太君が旗を上げ下げするイメージで、旗を上げた状態を指します。
「false」は「オン(on)/オフ(off)」の表現の片割れで「オフ(off)」を意図する表現です。
ピヨ太君が旗を上げ下げするイメージで、旗を下げた状態を指します。
フラグは「オン(on)」か「オフ(off)」のどちらかを表す値が入り、2つの状態のどちらかを判断するために使う変数を指す俗称です。
先ほど、ピヨ太君が旗を上げ下げするイメージで「true」と「false」を説明しました。
このピヨ太君に相当する変数がフラグです。
フラグには「オン(on)」の状態を表す値か「オフ(off)」の状態を表す値が入ります。
状況次第では「オン(on)/オフ(off)」ではなく「Yes/No」だったり「OK/NG」だったりするでしょうけどね。
とにかく、セットになる2つの状態です。
フラグに設定する値は
オン(on)の状態 → true
オフ(off)の状態 → false
とするか
オン(on)の状態 → 1
オフ(off)の状態 → 0
とするのが一般的でしょう。
ですが、絶対の決まりがあるわけでは ありません。
オン(on)の状態 → "オン"
オフ(off)の状態 → "オフ"
だって
オン(on)の状態 → 0
オフ(off)の状態 → 1
だって かまいません。
1.2つの値のどちらかを設定する
2.2つの状態のどちらかを表現する
と決めた変数であれば、フラグとしての役割を果たせます。
フラグの主な使いどころは、2つに枝分かれする条件分岐です。
例えば、そうですね。
「支払い済みフラグ」という名前の変数を用意して、最初は「0」を入れておきます。
お金を払ったら、支払い済みフラグの値を「1」にします。
そうすると、支払い済みフラグの値を見ることで、お金を払ったか判断できます。
支払い済みフラグの値が「0」だったら、まだ払っていません。
「はやく払えよ!」と催促します。
支払い済みフラグの値が「1」だったら、すでに払っています。
特に何もしません。
この処理の流れをプログラムっぽく書くと、以下のようになります。
支払い済みフラグ = 0;
if(お金を払った? == 払った){
支払い済みフラグ = 1;
}
if(支払い済みフラグ == 0){
「はやく払えよ!」と催促する;
}
支払い済みフラグには
1(支払い済み)
0(未払い)
のどちらかが設定されます。
これが
1.2つの値のどちらかを設定する
です。
支払い済みフラグを見ると
支払い済み(設定値:1)
未払い(設定値:0)
のどちらの状態か分かります。
これが
2.2つの状態のどちらかを表現する
です。
繰り返しになりますが、支払い済みフラグを見ると
支払い済み(設定値:1)
未払い(設定値:0)
のどちらの状態か分かります。
「支払い済みだったら、この処理をやる。未払いだったら、あの処理をやる」のように、状態によって処理を分けられます。
この話における変数「支払い済みフラグ」のような役割を果たす変数がフラグです。
以上を踏まえて
フラグに「オン(on)」の状態を設定する行為
が「フラグを立てる」です。
フラグとして扱う変数に「true」を設定したり「1」を設定したりする行為を指します。
先ほどの「フラグ」の説明で使った処理を もう一度 見てみましょう。
支払い済みフラグ = 0;
if(お金を払った? == 払った){
支払い済みフラグ = 1;
}
if(支払い済みフラグ == 0){
「はやく払えよ!」と催促する;
}
この処理における
支払い済みフラグ = 1;
の部分が「フラグを立てる」処理をやっているところです。
例えば
if(お金を払った? == 払った){
支払い済みフラグ = 1;
}
の部分を
お金を払っていたら、支払い済みフラグを立てる処理
と表現したりします。
お仕事でプログラミングの話をしていると、先輩なんかは当たり前のように「この処理のところでフラグを立てて~」とか言います。
プログラミングをするお仕事につくつもりの人は、できれば覚えてあげてください。
ちなみにですが、マンガ好きな人とかは「死亡フラグを立てる(死亡フラグが立つ)」という形で「フラグを立てる」という表現に馴染みがあるはずです。
マンガとかで出てくる「死亡フラグ」は神様の「こいつ、死なせる?」の判断基準です。
死亡フラグがオン(on)の状態だったら、死なせます。
死亡フラグがオフ(off)の状態だったら、生き残らせます。
特定の条件を満たすと死亡フラグがオン(on)の状態になります。
例えば「俺、この戦争から帰ったら結婚するんだ」と素敵なセリフを吐いたりですね。
死兆星が見えちゃったりですね。
この状態を指して「死亡フラグが立つ」や「死亡フラグを立てる」と表現します。
そして、あるタイミングで神様が「こいつ、死なせちゃおうかな~?それとも生き残らせようかな~?」を判断します。
このときに神様は、死亡フラグを見て、どうするかを決めるのです。
つまり、死亡フラグが立っていると、いずれ死んじゃいます。
よって「あ~、そんなことを言うと(すると)、演出的に死んじゃうんじゃないの?」な言動を指して「死亡フラグを立てる」と表現するのです。
一言でまとめるよ
まぁ「フラグを立てる」って表現が出てきたら「フラグとして使っている変数
(プログラミングにおける値を入れておく箱)に『オン(on)』に相当する値を入れるんだな~」と お考えください。
おまけ
■訳してみるよ
「flag(フラグ)」の意味は「旗」とかです。
「を立てる」は日本語ですね。
何となく くっつけると
旗を立てる
となります。






