メインコンテンツへスキップ
レッスン 7 / 15推定時間: 25

毎日の歯磨き:繰り返し処理を理解しよう

同じことを何度も繰り返す。人間には退屈でも、コンピュータは文句を言いません!繰り返し処理(ループ)を使って、効率的なプログラムを作る方法を学びましょう。

はじめに

今日は、コンピュータのすごい能力の一つ、「繰り返し処理」を学びます。

想像してみてください:

  • 「おはよう」を100回書く
  • 1から1000まで数える
  • 全員分の成績を計算する

人間がやったら大変ですよね?でも、コンピュータなら一瞬です!

毎日の繰り返し

あなたも繰り返している!

実は、私たちの生活は「繰り返し」でいっぱいです。

🔄 毎日の繰り返し

毎日すること

  • 歯を磨く(朝と夜)
  • 学校に行く(月〜金)
  • ご飯を食べる(朝・昼・晩)

繰り返しの作業

  • 階段を上る(1段ずつ20段)
  • 縄跳び(100回跳ぶ)
  • 漢字の練習(同じ字を10回書く)

これらをプログラムで表現すると、とても簡単になります!

回数を決めて繰り返す

基本の形:○回繰り返す

// 5回「こんにちは」と言う
5回繰り返す:
    "こんにちは"

// 結果
// こんにちは
// こんにちは
// こんにちは
// こんにちは
// こんにちは

カウンターを使う

何回目かを数えながら繰り返すこともできます。

// 1から10まで数える
回数 を 1 から 10 まで繰り返す:
    回数 + "回目"

// 結果
// 1回目
// 2回目
// 3回目
// ...
// 10回目

いろいろな繰り返し方

1. 腕立て伏せカウンター

目標回数 = 20

回数 を 1 から 目標回数 まで繰り返す:
    "腕立て伏せ " + 回数 + "回!"
    
    もし 回数 == 10 なら
        "半分まで来た!がんばれ!"
    
    もし 回数 == 目標回数 なら
        "完了!お疲れさま!"

2. 九九の表を作る

// 3の段を表示
= 3

かける数 を 1 から 9 まで繰り返す:
    答え = 段 × かける数
+ " × " + かける数 + " = " + 答え

// 結果
// 3 × 1 = 3
// 3 × 2 = 6
// 3 × 3 = 9
// ...
// 3 × 9 = 27

3. 貯金箱シミュレーション

貯金額 = 0
毎日の貯金 = 10

日数 を 1 から 30 まで繰り返す:
    貯金額 = 貯金額 + 毎日の貯金
    
    もし 日数 % 7 == 0 なら  // 7で割り切れる = 日曜日
        "1週間で " + 貯金額 + "円貯まった!"

"30日後の貯金額:" + 貯金額 + "円"

条件で繰り返す

「〜になるまで」繰り返す

回数が決まっていない繰り返しもあります。

// サイコロで6が出るまで
サイコロの目 = 0
振った回数 = 0

サイコロの目 が 6 じゃない間 繰り返す:
    サイコロの目 = ランダム(16
    振った回数 = 振った回数 + 1
    "サイコロを振った:" + サイコロの目

"6が出た!" + 振った回数 + "回かかった!"

ゲームの例:モンスターとの戦い

プレイヤーのHP = 100
モンスターのHP = 50

どちらかのHP が 0以下 になるまで繰り返す:
    // プレイヤーの攻撃
    ダメージ = ランダム(1020
    モンスターのHP = モンスターのHP - ダメージ
    "モンスターに" + ダメージ + "のダメージ!"
    
    もし モンスターのHP <= 0 なら
        "モンスターを倒した!"
        繰り返しを終了
    
    // モンスターの攻撃
    ダメージ = ランダム(515
    プレイヤーのHP = プレイヤーのHP - ダメージ
    "プレイヤーに" + ダメージ + "のダメージ!"
    
    もし プレイヤーのHP <= 0 なら
        "ゲームオーバー..."
        繰り返しを終了

リストの全部に対して繰り返す

買い物リストの例

買い物リスト = ["りんご", "牛乳", "パン", "卵", "お菓子"]
合計金額 = 0

買い物リストの各商品 に対して繰り返す:
    もし 商品 == "りんご" なら
        値段 = 100
    もし 商品 == "牛乳" なら
        値段 = 200
    もし 商品 == "パン" なら
        値段 = 150
    もし 商品 == "卵" なら
        値段 = 250
    もし 商品 == "お菓子" なら
        値段 = 80
    
    合計金額 = 合計金額 + 値段
    商品 + ":" + 値段 + "円"

"合計:" + 合計金額 + "円"

クラスの成績処理

生徒の点数リスト = [85, 92, 78, 65, 90, 88, 72]
合計点 = 0
生徒数 = 0

点数リストの各点数 に対して繰り返す:
    合計点 = 合計点 + 点数
    生徒数 = 生徒数 + 1
    
    もし 点数 >= 80 なら
        "優秀!"
    そうでなければ もし 点数 >= 60 なら
        "合格"
    そうでなければ
        "もう少しがんばろう"

平均点 = 合計点 ÷ 生徒数
"クラスの平均点:" + 平均点

繰り返しの中断と継続

break(ブレイク):繰り返しを終了

// 宝探しゲーム
宝の位置 = 7
見つかった = false

位置 を 1 から 10 まで繰り返す:
    "位置" + 位置 + "を探索中..."
    
    もし 位置 == 宝の位置 なら
        "宝を発見!"
        見つかった = true
        繰り返しを終了  // ここで終わり
    
"探索終了"

continue(コンティニュー):次の繰り返しへ

// 偶数だけ表示
数 を 1 から 10 まで繰り返す:
    もし 数 % 2 == 1 なら  // 奇数
        次の繰り返しへ  // スキップ
    
+ "は偶数"

// 結果
// 2は偶数
// 4は偶数
// 6は偶数
// 8は偶数
// 10は偶数

二重の繰り返し

九九の表(全部)

段 を 1 から 9 まで繰り返す:
    "【" ++ "の段】"
    
    かける数 を 1 から 9 まで繰り返す:
        答え = 段 × かける数
+ " × " + かける数 + " = " + 答え
    
    "---"  // 区切り線

よくある間違いと対処法

間違い1:無限ループ

// ❌ 危険!終わらない繰り返し
= 1
数 が 10 より小さい間 繰り返す:
    "こんにちは"
    // 数を増やすのを忘れた!

// ✅ 正解
= 1
数 が 10 より小さい間 繰り返す:
    "こんにちは"
=+ 1  // 忘れずに!

間違い2:範囲を間違える

// ❌ 11回繰り返してしまう
回数 を 0 から 10 まで繰り返す:
    "繰り返し"

// ✅ 10回繰り返す
回数 を 1 から 10 まで繰り返す:
    "繰り返し"

練習問題

問題1:星を描く

「★」を使って、次のような模様を作ってください:

★
★★
★★★
★★★★
★★★★★
答えを見る
行 を 1 から 5 まで繰り返す:
= ""
    
    個数 を 1 から 行 まで繰り返す:
=+ "★"
    
    星を表示

問題2:素数を見つける

1から20までの数字の中から、素数(1と自分自身でしか割り切れない数)を見つけてください。

答えを見る
数 を 2 から 20 まで繰り返す:
    素数である = true
    
    割る数 を 2 から (数-1) まで繰り返す:
        もし 数 % 割る数 == 0 なら
            素数である = false
            繰り返しを終了
    
    もし 素数である == true なら
+ "は素数"

実践演習:CommandPlaygroundで体験

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

今日のまとめ

覚えておいてほしい3つのこと

  1. 繰り返し処理で、同じ作業を効率的に実行できる
  2. 「回数」「条件」「リスト」など、いろいろな繰り返し方がある
  3. 人間には大変な作業も、コンピュータなら一瞬でできる

次回予告

次のレッスンでは、「関数」について学びます。

関数は「魔法の呪文」のようなもの:

  • よく使う処理に名前をつける
  • 何度でも簡単に呼び出せる
  • プログラムがスッキリする

料理のレシピを「関数」にすることもできます!

チャレンジ問題

ミッション:カレンダーを作る

1ヶ月分のカレンダーを表示するプログラムを作ってください。

条件:

  • 月の日数は30日
  • 7日ごとに改行(1週間)
  • 日曜日は「🌞」、それ以外は数字

期待する出力:

🌞 2 3 4 5 6 7
🌞 9 10 11 12 13 14
🌞 16 17 18 19 20 21
🌞 23 24 25 26 27 28
🌞 30
答えの例を見る
日付 = 1
曜日 = 0  // 0=日曜日、1=月曜日...

日付 が 30以下 の間 繰り返す:
    もし 曜日 == 0 なら
        "🌞 "を表示(改行なし)
    そうでなければ
        日付 + " "を表示(改行なし)
        日付 = 日付 + 1
    
    曜日 = 曜日 + 1
    
    もし 曜日 == 7 なら
        改行する
        曜日 = 0  // 日曜日に戻る

素晴らしい!繰り返し処理をマスターしました。これで、大量のデータも効率的に処理できるようになりました。コンピュータの本当の力を使えるようになってきましたね!

さらに学習を続けるには

素晴らしい学習ペースです!次のレッスンに進むには、無料会員登録をお願いします。無料会員では各コース3レッスンまで学習できます。

無料で続きを学ぶ

各コース3レッスンまで学習可能

学習進捗の自動保存

コース修了証明書の発行