「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

フラグを立てる

pointこの用語のポイント

pointオン(on)/オフ(off)の判定に使う変数に「オン(on)」に相当する値を入れるよ

pointプログラミングの話で出てくるかもしれないよ

スポンサーリンク

簡単に書くよ

フラグを立てる(読:フラグヲタテル)とは

プログラミングの話で出てくることがある表現のひとつ
であり

「オン(on)」か「オフ(off)」のどちらかの状態を表す値が入る変数(プログラミングにおける値を入れておく箱)(フラグ)に「オン(on)」に相当する値を設定すること
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として

変数
true
false
フラグ


について説明します。
特に「フラグ」については、結構ガッツリ説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

変数は「プログラミング言語における『値を入れておく箱』」です。
処理の途中で値を入れたり、逆に取り出したりできます。

フラグを立てる

true」は「オン(on)/オフ(off)」の表現の片割れで「オン(on)」を意図する表現です。
ピヨ太君が旗を上げ下げするイメージで、旗を上げた状態を指します。

フラグを立てる2

false」は「オン(on)/オフ(off)」の表現の片割れで「オフ(off)」を意図する表現です。
ピヨ太君が旗を上げ下げするイメージで、旗を下げた状態を指します。

フラグを立てる3

フラグは「オン(on)」か「オフ(off)」のどちらかを表す値が入り、2つの状態のどちらかを判断するために使う変数を指す俗称です。

先ほど、ピヨ太君が旗を上げ下げするイメージで「true」と「false」を説明しました。

フラグを立てる4

このピヨ太君に相当する変数がフラグです。

フラグを立てる5

フラグには「オン(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」を入れておきます。

フラグを立てる6

お金を払ったら、支払い済みフラグの値を「1」にします。

フラグを立てる7

そうすると、支払い済みフラグの値を見ることで、お金を払ったか判断できます。

支払い済みフラグの値が「0」だったら、まだ払っていません。
「はやく払えよ!」と催促します。

フラグを立てる8

支払い済みフラグの値が「1」だったら、すでに払っています。
特に何もしません。

フラグを立てる9

この処理の流れをプログラムっぽく書くと、以下のようになります。

支払い済みフラグ = 0;

if(お金を払った? == 払った){
 支払い済みフラグ = 1;
}

if(支払い済みフラグ == 0){
 「はやく払えよ!」と催促する;
}


支払い済みフラグには

1(支払い済み)
0(未払い)


のどちらかが設定されます。
これが

1.2つの値のどちらかを設定する

です。

支払い済みフラグを見ると

支払い済み(設定値:1)
未払い(設定値:0)


のどちらの状態か分かります。
これが

2.2つの状態のどちらかを表現する

です。

繰り返しになりますが、支払い済みフラグを見ると

支払い済み(設定値:1)
未払い(設定値:0)


のどちらの状態か分かります。
「支払い済みだったら、この処理をやる。未払いだったら、あの処理をやる」のように、状態によって処理を分けられます。

この話における変数「支払い済みフラグ」のような役割を果たす変数がフラグです。

以上を踏まえて

フラグに「オン(on)」の状態を設定する行為

が「フラグを立てる」です。
フラグとして扱う変数に「true」を設定したり「1」を設定したりする行為を指します。

フラグを立てる10

先ほどの「フラグ」の説明で使った処理を もう一度 見てみましょう。

支払い済みフラグ = 0;

if(お金を払った? == 払った){
 支払い済みフラグ = 1;
}

if(支払い済みフラグ == 0){
 「はやく払えよ!」と催促する;
}


この処理における

 支払い済みフラグ = 1;

の部分が「フラグを立てる」処理をやっているところです。

例えば

if(お金を払った? == 払った){
 支払い済みフラグ = 1;
}


の部分を

お金を払っていたら、支払い済みフラグを立てる処理

と表現したりします。

お仕事でプログラミングの話をしていると、先輩なんかは当たり前のように「この処理のところでフラグを立てて~」とか言います。
プログラミングをするお仕事につくつもりの人は、できれば覚えてあげてください。

ちなみにですが、マンガ好きな人とかは「死亡フラグを立てる(死亡フラグが立つ)」という形で「フラグを立てる」という表現に馴染みがあるはずです。

マンガとかで出てくる「死亡フラグ」は神様の「こいつ、死なせる?」の判断基準です。
死亡フラグがオン(on)の状態だったら、死なせます。
死亡フラグがオフ(off)の状態だったら、生き残らせます。

特定の条件を満たすと死亡フラグがオン(on)の状態になります。
例えば「俺、この戦争から帰ったら結婚するんだ」と素敵なセリフを吐いたりですね。
死兆星が見えちゃったりですね。

この状態を指して「死亡フラグが立つ」や「死亡フラグを立てる」と表現します。

そして、あるタイミングで神様が「こいつ、死なせちゃおうかな~?それとも生き残らせようかな~?」を判断します。
このときに神様は、死亡フラグを見て、どうするかを決めるのです。

つまり、死亡フラグが立っていると、いずれ死んじゃいます。
よって「あ~、そんなことを言うと(すると)、演出的に死んじゃうんじゃないの?」な言動を指して「死亡フラグを立てる」と表現するのです。


image piyo2

一言でまとめるよ

まぁ「フラグを立てる」って表現が出てきたら「フラグとして使っている変数(プログラミングにおける値を入れておく箱)に『オン(on)』に相当する値を入れるんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像066
書籍画像069

おまけ

■訳してみるよ

「flag(フラグ)」の意味は「旗」とかです。
「を立てる」は日本語ですね。
何となく くっつけると

旗を立てる

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
ウォーターサーバーのキャッチコピーを100本考える方法
体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践