日々の喧騒を離れ、静かにキーボードと向き合う。
何気ない作業のようでいて、実はマインクラフトという箱庭世界の「運命」を自らの手で書き換えている……。
これは、大人の嗜みとして、なかなかに贅沢な時間だと言えるのではないでしょうか。
今回は、プログラミングの根幹とも言える「条件分岐」について学んだ内容を、自分なりの備忘録としてまとめておきます。
1. 「If文」という名の羅針盤
プログラミングにおける最も基本的な分岐、それが if です。「もし~だったら、こうする」という、極めてシンプルかつ強力な論理。
if (number >= 10) {
// 10以上の時の処理
} else {
// それ以外の時の処理
}
ここで重要なのは、「かつ(&&)」や「または(||)」といった複合条件。
人生と同じで、条件は一つとは限りません。それらをどう組み合わせるか。そこに、プログラマとしての「戦略」が表れます。
……だが、ここで気をつけたいのが「ネスト(入れ子)」の罠です。
if文の中にif文を重ねすぎるのは、美しくない。読み手(未来の自分を含む)を迷わせ、バグという名の不運を招く。
「ネストが深い……。これは、不味いな。非常に不味い……っ!」
そう直感した時は、処理を整理し、なるべく平坦なコードを目指す。この「引き算の美学」こそが、健全な開発のコツと言えそうです。
2. 「Switch文」に見る、大人の選択
値によって多くの選択肢がある場合、if文をダラダラと書き連ねるのは野暮というものです。
そんな時に登場するのが switch 文。
Java 14あたりから導入された新しい書き方は、実にスマート。
以前の冗長な書き方に比べ、書き心地は驚くほど軽やかになっています。
switch (number) {
case 1 -> "A";
case 2 -> "B";
default -> "その他";
};
……これだ。これでいい。
特定の「値」に応じてスッ、スッ、と処理が切り替わる。この明快さ。
複雑な条件式をこねくり回すのではなく、あらかじめ決まった選択肢から最適解を選ぶ。この「整理された心地よさ」もまた、プログラミングの醍醐味でしょう。
3. 実践:二回に一回の「打ち上げ花火」
学んだ知識を、さっそくマインクラフト上の処理に落とし込んでみます。
今回試したのは、「スニーク(かがむ動作)をした時に花火を上げる」という処理。
しかし、毎回上がるのは少し騒がしい。そこで「2回に1回だけ」という条件を加えます。
ここで重要になるのが、クラス内に保持する「カウント(変数)」の扱いです。
- かがむたびにカウントを
+1する。 - カウントを
2で割った余りが0の時だけ、花火を打ち上げる。
この、「あまり(%)」を使ってリズムを作るという発想。
「なるほど……。一見ランダムに見えて、実は裏で整然と管理されている……っ。この仕組みが、世界に心地よい変化を生むわけだ……」
ただし、ここには一つ戦略的な注意点があります。
サーバー全体でカウントを共有してしまうと、AさんとBさんの動きが混ざってしまう。
「自分がかがんだのに上がらない。隣の誰かがかがんだせいで、自分のカウントが消費される……」
そんな不条理を避けるには、プレイヤーごとに個別の管理が必要になりますが、それはまた別の機会に。
考察:分岐を制する者は、日常を制する
今回の学習を通して感じたのは、条件分岐とは単なる文法ではなく、「物事をどう整理し、どう優先順位をつけるか」という思考そのものだということです。
「もし時間が空いたら、このコードをリファクタリングしよう」
「もしエラーが出たら、一旦コーヒーを飲んで落ち着こう」
私たちの日常もまた、無数の if で構成されています。
それを場当たり的に処理するのではなく、Switch文のように美しく、あるいはネストを避けてシンプルに組み立てる。
……そう考えるだけで、少しだけ、人生というプログラムもスムーズに動くような気がしてきませんか。
結び
マインクラフト上で自分の書いたコードが動き、思い通りのタイミングで花火が上がる。
その達成感は、たとえ動作が重いPCの前であっても、何物にも代えがたい「悦楽」です。
参考までに、私が実際に実行したときの画面キャプチャをまとめたpdfをアップしておこう。
Java-A080-010さて、次は「繰り返し(ループ)」の領域。
同じことを何度も繰り返す中に、どんな美学を見出せるか。
今夜は、この満足感に浸りながら、静かに眠りにつくことにしましょう。
明日もまた、良いコードが書けそうです。










