はじめに:最近聞く「フラグ」って、なんか違くない?
日常の会話やSNSで 「フラグ立ったわ」「それ死○フラグじゃん」
といった表現をよく耳にするようになったけど、、、
なんかちがうくない??
この記事では、まずこの**“違和感”** を整理して、エンジニア初心者にとって、
フラグを理解しやすいものとする。(エンタメ寄り)
このズレを整理すると、プログラミングにおける
「本来のフラグ」の役割がより理解しやすくなるはずだ!!
1. 世間のフラグは「予兆」
世間で使われるフラグとは、簡単にいうと “これから何か起きそう” という
気配のことだ。物語の演出、アニメの伏線、SNS上の空気……
そういった曖昧なもので構成されている。
もっとも有名なのが、このセリフ。
この戦いが終わったら結婚するんだ
このセリフは、誰もが「うわ、それ死〇フラグだわ」と感じる。
だけど他の場合だと、よく考えると条件が曖昧すぎる。
例えばこんなのも、物語上フラグだろう
(普段ミス連発の人)「今日こそはミスない気がする!!」 → ミスする
(普段遅刻する人)「明日絶対遅刻しないから!!」 → 遅刻する
(黒猫が前を横切った人)「今日絶対ツイてないわ~」 → 災難にあう
→ しかし、人によって “フラグっぽさ” の基準が丸ごと違う。
明確なルールなんて存在しない。だいたい〇%くらい起こりそう みたいな感覚に近い
2. この「予兆」をコードにするとどうなる?
曖昧で人によって判断の異なる“世間のフラグ”を、そのままコードにしてみるとこうなる。
例:(普段遅刻する人)「明日絶対遅刻しないから!!」 → 遅刻する
// きっとこうだろう.java
// フラグ回収のフラグを管理する実験コード(?)
import java.util.Random;
public class AnoChikokuCheck {
public static void main(String[] args) {
boolean chikokuFlag = false; // 遅刻フラグ(予兆)
int chikokuPercent = 0; // 遅刻する確率(曖昧さの象徴)
Random rnd = new Random();
// Aの発言:予兆フラグが立つ瞬間
String A_Speech = "明日絶対遅刻しないから";
if (A_Speech.equals("明日絶対遅刻しないから")) {
chikokuFlag = true;
chikokuPercent = rnd.nextInt(100); // 0〜99%のどれか
}
// フラグ回収の判定
if (chikokuFlag && chikokuPercent > 60) {
System.out.println("ごめんごめん、昨日アニメ見始めたら止まらなくてさ…");
} else {
System.out.println("ほら言ったでしょ〜!ちゃんと起きれたし!");
}
}
}
一見フラグっぽいけれど、実はぜんぜんダメだ。
【遅刻パーセント】を 60% 超えたらという判定基準を仮で設定したけど、
【遅刻パーセント】って、じゃあ実際 何パーセント になるかは
確定しない。
システム的には困るポイント
- 条件が曖昧すぎて判定不能
- 人によって基準が変わる
- 無数の例外が生まれる
- 正解を証明できない
つまり世間の“予兆フラグ”は、フラグというよりも
予測モデルの領域に近い。真偽の世界では扱いきれないのだ。
→ 確定しない・・・予兆・予測
→ 確定できる・・・フラグ
3. エンジニアが使うフラグは「真偽」だけ
一方で、プログラミングにおけるフラグは非常にシンプルだ。
- true / false
- 1 / 0
- ON / OFF
これ以上の状態は持たない。曖昧さは一切ない。「〇」 か 「×」なのだ
// 死〇フラグ(言ったら即〇バージョン)
public class ShibouFlag {
public static void main(String[] args) {
// 言ったかどうかだけで決まる世界
boolean saidTheLine = false;
// セリフ(変えると助かる)
String speech = "この戦いが終わったら結婚するんだ";
// 言ったら死〇フラグON
if (speech.equals("この戦いが終わったら結婚するんだ")) {
saidTheLine = true;
}
// 判定
if (saidTheLine) {
System.out.println("――その後姿を見た者はいなかった――");
} else {
System.out.println("A「(セリフを言わなかったので普通に生還)」");
}
}
}
エンジニアにとってのフラグとは、
「現在の状態がこうである」という確定情報を示す印
であり、確定演出なのだ!!。
4. まとめ:同じ“フラグ”でも文化が違う
- 世間のフラグ → 予兆、気配、物語の流れ
- エンジニアのフラグ → 真偽の状態
元の語源はどちらも“旗(flag)=印”だが、そこから分岐して別の文化へ成長した。
曖昧なものはフラグにしない。これがエンジニアの世界の鉄則だ。
あとがき
ここまで読んでくれて、本当にありがとうございました。
「プログラミングって難しい...」って思ってた人も、
「ちょっと楽しいかも...!」って思ってもらえたらうれしいな。
次の投稿も、よろしくおねがいします。
💬 コメント・フィードバック歓迎!
「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!