フラグを下ろす
オン(on)/オフ(off)の判定に使う変数に「オフ(off)」に相当する値を入れるよ
プログラミングの話で出てくるかもしれないよ
「フラグを下げる」やその他の言い方をされる場合もあるよ
簡単に書くよ
フラグを下ろす(読:フラグヲオロス)とは
プログラミングの話で出てくるかもしれない表現のひとつ
であり
「オン(on)」か「オフ(off)」のどちらかの状態を表す値が入る変数
(プログラミングにおける値を入れておく箱)(フラグ)に「オフ(off)」に相当する値を設定すること
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・変数
・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;
}
の部分を
お金を払っていたら、支払い済みフラグを立てる処理
と表現したりします。
以上を踏まえて
フラグに「オフ(off)」の状態を設定する行為
が「フラグを下ろす」です。
つまり
「フラグを立てる」と逆の操作
ですね。
フラグとして扱う変数に「false」を設定したり「0」を設定したりする行為を指します。
フラグに「オン(on)」の状態を設定する行為がほぼほぼ「フラグを立てる」と表現されるのに対し「オフ(off)」の状態を設定する行為には、みんなの共通認識的な表現がありません。
「フラグを下ろす」「フラグを下げる」「フラグを倒す」「フラグを寝かせる」など、様々です。
※個人的には「フラグを下ろす」か「フラグを下げる」が、しっくりきます。
とはいえ、フラグの操作は旗の上げ下げのイメージです。
そのイメージさえ持っておけば、他の表現が出てきても何となく推測できると思います。
あと「フラグを折る」という表現もありますが、プログラミングの話では使いません。
マンガとかで出てくる死亡フラグのようなものに対して使われる表現です。
一言でまとめるよ
まぁ「フラグを下ろす」って表現が出てきたら「フラグとして使っている変数
(プログラミングにおける値を入れておく箱)に『オフ(off)』に相当する値を入れるんだな~」と お考えください。
おまけ
■訳してみるよ
「flag(フラグ)」の意味は「旗」とかです。
「を下ろす」は日本語ですね。
何となく くっつけると
旗を下ろす
となります。






