あなたはfor文を扱えているか?あまりしない、だけどちょっと短縮できるやり方を紹介

for小ネタプログラミング

12/21/2025


for文とは

任意回繰り返す処理があったり、リストの中身を順番に取り出したりするとき
毎回お世話になるfor文。これがなくてはなにもできないと言っても過言ではありません。

しかし、使い方次第でfor文がさらに便利になるのです。
ただのループ用構文だけとしてfor文を使っているともったいないです。

while文などを使わないと書けない処置が、for文をうまく扱うことで
省略することもできます。実際にやってみましょう!

おみくじプログラムでやってみる

omikuji.js
const omikujiList = ['大凶', '凶', '末吉', '小吉', '吉', '中吉', '大吉']; export function getOmikujiResult() { const omikujiIndex = Math.floor(Math.random() * omikujiList.length); return omikujiList[omikujiIndex]; }

ここに、おみくじの結果をランダムに返すgetOmikujiResultがあります。
では問題です。

大吉になるまでおみくじの結果を出力し続けるプログラム

を書いてください。

答え

おそらく、あなたが考えたコードはこんな感じでしょう
(違ったらすいません)

for文を使わないコード
import { getOmikujiResult } from './omikuji.js'; let omikujiResult = getOmikujiResult(); while (omikujiResult != '大吉') { console.log(omikujiResult); omikujiResult = getOmikujiResult(); } console.log("大吉が出ました!");

ですが、このコードにfor文の仕様をうまく応用すれば
もう少し短いコードにできます!(行数の話であって冗長ではあるかもしれない)

import { getOmikujiResult } from "./omikuji.js"; for (let result = getOmikujiResult(); result != "大吉"; result = getOmikujiResult()) { console.log(result); } console.log("大吉が出ました!");

3行目の長さが異常ですが、for文の仕様を確認しながら動きを順に追っていきましょう。

for文は「初期化」「条件」「実行」の繰り返し

for文の中の

let result = getOmikujiResult(); result != "大吉"; result = getOmikujiResult()

の部分がありますよね。

これは最初から順に「初期化」「条件確認」「ループ時に毎回実行すること」
を書いてあります。

もうちょっと難し目に言うと、let result = getOmikujiResult();の部分は
for文を使わない場合のlet omikujiResult = getOmikujiResult();に相当します。

そしてresult != "大吉";omikujiResult != '大吉'

result = getOmikujiResult()omikujiResult = getOmikujiResult();
対応しているのです。

結局なにが言いたいの?

変数を宣言して、while文を書いて、whileの条件は変数の不等式で、...
とやるぐらいならfor文の仕組みを使って束ねた方がいい時もあるよね。

と言う話です。

他の言語だと?

この方法にも注意点があって、
C、C++、C#、Javascript、Javaあたりだと
for文の仕様が似ているのでこの方法が通用しますが、

Pythonなどのfor VAR in LIST的な構文や、
RubyやRustのfor VAR in START..END
Luaのfor VAR = START , ENDみたいな感じだと

「初期化」「条件確認」「ループ時に毎回実行すること」
が書けないのであんまりこの方法は有用じゃありません。

important


for文の構文が多様な言語もあるので、興味がある場合は各自調べてください!
(この記事でまとめるのは無理そうです...)

他の方法だと、Pythonの場合はジェネレーター(関数内にyieldを書く方法)を
使ったりすると少し短縮できるかも?です

最後に

for文はかなり基本的な構文なのでちょっとしたループなど単純なことにしか
使われなかったりしますが、書き方次第でかなり応用が効いて面白いと思いました。
最後まで読んでいただきありがとうございます!