あなたはfor文を扱えているか?あまりしない、だけどちょっと短縮できるやり方を紹介
12/21/2025
for文とは
任意回繰り返す処理があったり、リストの中身を順番に取り出したりするとき
毎回お世話になるfor文。これがなくてはなにもできないと言っても過言ではありません。
しかし、使い方次第でfor文がさらに便利になるのです。
ただのループ用構文だけとしてfor文を使っているともったいないです。
while文などを使わないと書けない処置が、for文をうまく扱うことで
省略することもできます。実際にやってみましょう!
おみくじプログラムでやってみる
omikuji.jsconst 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文はかなり基本的な構文なのでちょっとしたループなど単純なことにしか
使われなかったりしますが、書き方次第でかなり応用が効いて面白いと思いました。
最後まで読んでいただきありがとうございます!