AOYAMA Koji's プログラミングブログ - プログラミングを楽しく体験

【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】プログラミング初心者向け・入門編・基礎編初中級者向けプログラミング解説プログラマー向け実装解説[初級者向け]

2026/06/22
【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け]

 40年以上のゲームプログラミング経験をマンガで可視化。 今回は「列挙ループ」。 列挙された値を変数に順次設定して、処理します。 本格的なプログラミングにはループが必要で、列挙ループはその序章です。
【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け]

プログラミングブログ記事一覧


[PR]

【マンガで感じる】列挙ループ ~値を順次設定して処理~


【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] 社長「ついに来ました!」 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] トレーニングルームにステップマシン5つ配置されている (社長)「ステップマシン!」 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] 社長「ちゃんと5回」「ステップできるか」 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] 社長「確認をお願いします」 クリスタル「承知しました」 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] ループ ~繰り返し~ 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ 了解 (クリスタル)「メカ・アイ!」「お願い」 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] 全ステップストーン番号[12345] (クリスタル)「1から5まで**ループ**して」 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] クリスタル「ステップできたら」「値を表示して」 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] クリスタル「準備オッケー?」 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ ステップ開始準備 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] クリスタル「では、ループ開始!」「まずは1!」 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ ステップストーン1に乗る 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ 地面からの青白い光のオーラに包まれる 全ステップストーン番号[ 2345] 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ [腹=1] 集中線エフェクト 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ「1」 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] クリスタル「次は2!」 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ[腹=2] ステップストーン2に乗り腹へ矢印 全ステップストーン番号[  345] 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ「2」 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] クリスタル「それを**繰り返し**て!」 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ[腹=3]「3」ステップストーン3に乗る 全ステップストーン番号[   45] 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ[腹=4]「4」ステップストーン4に乗る 全ステップストーン番号[    5] 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] クリスタル「最後!」 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ[腹=5] ステップストーン5に乗る 全ステップストーン番号[     ] 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ「5」 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] クリスタル「社長、5ステップ問題ありません」 社長 満足そう 【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] 社長「ステップステップゥゥゥ!」はしゃいでステップマシン使用中
次のエピソードへ
【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] ループ

「列挙ループ」のソースコード例


Python

# 列挙された値(1,2,3,4,5)を順次「変数i」に設定して繰り返す
for i in [1,2,3,4,5]:
    print( i )

JavaScript

// 列挙された値(1,2,3,4,5)を順次「変数i」に設定して繰り返す
for ( let i of [1,2,3,4,5] ) {
    console.log( i );
}

[PR]

「列挙ループ」とは:値を順次設定して処理


 「列挙ループ」の本質「値を順次設定して処理」です。
 プログラムは、処理を繰り返し実行するループが可能であり、得意なところです。 その中でも列挙ループは、列挙された値を順次、変数に設定して処理します。

「列挙ループ」のソースコードの仕組み


 列挙ループのソースコードを解説します。

Python の for..in による列挙ループ


 まずは Python における列挙ループのソースコードを解説します。

for..in で列挙された値を変数に設定して繰り返す

# 列挙された値(1,2,3,4,5)を順次「変数i」に設定して繰り返す
for i in [1,2,3,4,5]:
 for は、ループを指示する代表的な制御文です。 これは Python の他、JavaScript や C#、C++ などでも同様です。
 Python では for 変数 in [値,値,...]: の形式で、変数がそれぞれの値を取りながら繰り返すことができます。
 つまりこの行は、変数 i の値が、最初 1 になり、次に 2345 と変わっていきながら、 その度に次の行(print)を実行します。


print で画面に表示

print( i )
 Pythonの print は、実行した端末に、引数の値を表示します。
 このソースコードでは、引数が i です。
 これは for 文の中にあり、i は前述の通り 1, 2, 3, 4, 5 と刻々と変わっていきながら、この指示が呼ばれます。
 つまり i1 のときは、print( 1 ) の意味になり、1 が表示されます。 これがマンガの挙動です。


別の書き方

print( 1 )
print( 2 )
print( 3 )
print( 4 )
print( 5 )
 前述の2行の Python プログラムは、このように 5 行で書き直すこともできます。
 ただし、こう書いてしまうと長くなりますし、 printの部分をより複雑にしたときに、対応漏れ等が出てしまうかもしれません。
 forループを使用してプログラミングすれば、すべての値に対して、同じ処理が確実に可能です。


JavaScript の for..of による列挙ループ


 次に JavaScript における列挙ループのソースコードを解説します。 書き方は若干異なりますが、Python と同様です。

for..of で列挙された値を変数に設定して繰り返す

// 列挙された値(1,2,3,4,5)を順次「変数i」に設定して繰り返す
for ( let i of [1,2,3,4,5] ) {
 JavaScript では for ( let 変数 of [値,値,...] ) { ... } の形式で、変数がそれぞれの値を取りながら繰り返すことができます。


console.log でコンソールに表示

console.log( i );
 console.log は、Webブラウザーの開発ツールのコンソールに、引数の値を表示します。
 Webブラウザー毎に方法は異なりますが、パソコンの Microsoft Edge や Google Chrome なら、 F12キーを押すか、右クリックして「検証(開発者ツール)」を開き、「Console(コンソール)」のタブを選択することで確認できます。


ゲームプログラミングにおける「列挙ループ」


 本エピソード「列挙ループ」は、「ループ」を理解するための序章として用意しました。

「ループ」による繰り返し処理はプログラム最大の特徴


 ゲームプログラミングを含めたすべてのプログラミングの基本要素のうち、筆者が最も重要と考えているのが「ループ」です。
 ループによる繰り返し処理は、他のドキュメントと異なる、プログラムにおける最大の特徴です。

「ループ」の理解に繋がる「列挙ループ」


 ループを理解して使えるかどうかが、プログラマーかどうかの差だと筆者は考えています。
 ただしループを理解するためには、高い壁を超える必要があります。 そのため、ループの中でも比較的、動作を理解しやすい「列挙ループ」のエピソードを用意しました。
 プログラミング初級者の方は、細かくマンガとソースコードを読み比べて、その内部動作を理解してください。 すんなり理解できる方は、読み飛ばしていただいて大丈夫です。 ただしもし、次エピソードで解説予定の「ループ」の理解に苦労するようでしたら、本エピソードに戻り、読み比べてみてください。
[PR]

マンガで感じる!本当の基礎から学ぶゲームプログラミングとは


 「マンガで感じる!本当の基礎から学ぶゲームプログラミング」シリーズでは、 主に、ゲーム開発を題材として、プログラミング時に筆者が脳内でイメージするコンピューター内部動作や本質を、マンガにてお伝えします。

プログラミングの本質をマンガで理解


 AI時代のプログラミングは、本質理解が重要です。 本質を理解していれば、あとはAIに任せて、自身を持って完成したプログラムに責任が持てるでしょう。
 そのため本シリーズでは、コーディングの実例や詳細よりも、「本質をイメージとして感じられること」を最優先としています。 まずマンガで、情報をできる限り絞り、プログラミングの仕組みやコンピューターの内部動作を、物理的に可視化してお届けします。
 そして文章の解説で徹底的に深堀りします。

登場人物紹介

【マンガで感じる】列挙ループ ~値を順次設定して処理~ 繰り返し処理する本格的プログラミングの序章【本当の基礎から学ぶゲームプログラミング】[初級者向け] 登場人物 社長 クリスタル メカたち  マンガで感じる!本当の基礎から学ぶゲームプログラミングシリーズには、主に社長、クリスタル、およびメカたちが登場します。 ※実在の人物とは関係ありません

社長

 本シリーズの偉い人です。
 マンガでは、指示すなわち「要件定義」を行います。

クリスタル

 社長の指示を、メカを活用して解決します。
 名前は、コンピューター内部で指揮者の役割を果たす「水晶発振器」に由来します。

メカたち

 用途に応じて多数存在し、果たす役割がそれぞれ与えられています。
 クリスタルの指示に従い、ある時はプログラムの変数や関数のように、ある時は電子回路の素子のように振る舞います。

「マンガで感じる!本当の基礎から学ぶゲームプログラミング」にかける想い


 筆者が本シリーズにかける想いや、 より詳しいコンセプトは「マンガで感じる!本当の基礎から学ぶゲームプログラミング」にて語っています。 そちらもぜひご覧ください。

本エピソードから読み始めた方へ


 もしあなたがプログラム初心者で、「マンガで感じる!本当の基礎から学ぶゲームプログラミング」シリーズを本エピソードから読み始めた場合は、 ぜひ最初のエピソード「プログラム」から読むことをご検討ください。

AIを専属の家庭教師にして列挙ループを学ぼう


 本エピソードでは、プログラミングに重要な役割を果たすループの序章「列挙ループ」について解説しました。
 マンガを読んで興味が湧いた、ソースコードや解説のこのキーワードが気になった、などあれば、AIを専属の家庭教師に見立てて対話してみましょう。 各人の理解度に応じた質疑応答ができて、理解が深まりますので強くオススメします。
 難易度が上がってきましたが、焦らず確実に理解していきましょう。 本エピソードが、ループおよびゲームプログラミングの本質理解に少しでもお役に立てれば幸いです。

補足

  • 本記事に記載のプログラムソースコードは、悪意のない範囲で自由に使用・改変していただいて問題ありません。ただし、ご自身の判断と責任でお願いします。
  • 記事内容の検討および検証・添削に生成AIの Anthropic Claude と Google Gemini を利用しております。
  • 記事内の画像の作成に生成AIの Google Gemini を利用しております。
  • ※各社の登録商標または商標について「®」「™」等の表記はしておりません。


カテゴリー:マンガで感じる!本当の基礎から学ぶゲームプログラミング,基本アルゴリズム編
[PR]