JavaScript | 1 日 90 分 × 7 日アプリ学習:ランダム表示アプリ(初級編)

Python
スポンサーリンク

7日目のゴールと今日やること

7日目のテーマは
「この1週間で学んだ“繰り返しカウント”を、ひとつの完成アプリとしてまとめる」 ことです。

新しい文法は、ほとんど増やしません。

for
range
変数(今・残り・セット数など)
if(回数やセットによってメッセージを変える)

この4つを全部使って、

「自分用トレーニングカウンターアプリ」
「セット × 回数 × メッセージ付きのカウンター」

を、ひとつの“作品”として形にします。

今日は「覚える日」ではなく、
「自分で説明できるようにする日」「自分のアプリとして完成させる日」 です。


ここまでの6日間で手に入れた「4つの道具」

繰り返しの軸 for と range

2日目・3日目でやってきたのは、

for i in range(1, 6):
    print(i)
Python

のように、

「1〜5を順番に取り出しながら、同じ形の処理を繰り返す」

という基本形でした。

range(開始, 終わり) は、

開始は含む
終わりは含まない

というルールで、

range(1, 6) → 1, 2, 3, 4, 5

という並びを作ります。

ここに「ステップ」を足すと、

for i in range(1, 10, 2):
    print(i)
Python

のように、
1, 3, 5, 7, 9 といった「増え方」をデザインできるようになりました。

「今何回目か」を表す変数

for の中で使う i は、

「今、何回目か」

を表す数字でした。

1回目 → i = 1
2回目 → i = 2

というふうに、
繰り返しのたびに i の値が変わっていきます。

この i を使って、

1回目だけ特別なメッセージ
3回目で区切り線
最後の回だけ締めのメッセージ

など、「回数によって中身を変える」ことができるようになりました。

「今」と「残り」を同時に扱う

5日目では、

total = 5

for i in range(1, total + 1):
    print("今は", i, "回目")
    print("残りは", total - i, "回です")
Python

のように、

i(今何回目か)
total – i(残り何回か)

という2つの視点を同時に扱いました。

これによって、

「今ここにいる」
「ゴールまであとどれくらいか」

を、カウンターとして表現できるようになりました。

セット × 回数の二重ループ

6日目では、「セット」という考え方を入れました。

sets = 3
reps_per_set = 5

for s in range(1, sets + 1):
    for r in range(1, reps_per_set + 1):
        print("セット", s, "の", r, "回目")
Python

外側の s は「セット番号」
内側の r は「セット内の回数」

という役割を持ち、

「大きな単位(セット)」
「小さな単位(回数)」

を同時にカウントできるようになりました。


今日作るもののイメージ「自分用トレーニングカウンターアプリ」

アプリの仕様を日本語で先に決める

いきなりコードではなく、
まずは「どんなアプリにしたいか」を日本語で決めます。

例えば、こんな仕様にしましょう。

セット数と1セットあたりの回数を設定できる
各セットの開始と終了を表示する
各セットの中で「今何回目か」を表示する
セットごとに「残りセット数」を表示する
最後のセットだけ特別なメッセージを出す
最後に「今日のトレーニング完了メッセージ」を出す

これが、そのままプログラムの設計になります。


コード① 設定ゾーンを書く

まずは「変えたい値」を一箇所に集める

いちばん上に、「設定ゾーン」をまとめて書きます。

sets = 3          # セット数
reps_per_set = 8  # 1セットあたりの回数
Python

ここを変えるだけで、

3セット × 8回
4セット × 10回

など、いろいろなメニューに対応できるようにします。

この段階では、まだループも print も書きません。
「このアプリは何を前提に動くのか」を決めている部分 です。


コード② タイトルと概要を表示する

アプリとしての「顔」を作る

次に、タイトルと概要を表示します。

print("===== 自分用トレーニングカウンター(7 日目) =====")
print()
print("今日のメニューは")
print("  セット数:", sets)
print("  1 セットあたりの回数:", reps_per_set)
print()
print("それでは始めましょう。")
print()
Python

ここは、完全に「見た目」の部分です。

でも、

「アプリを起動したときに、何が始まるのかが分かる」

というのは、実用的なアプリとしてとても大事な要素です。


コード③ 外側のループ(セットごとの処理)

セット単位の流れを作る

次に、セットごとの流れを書きます。

for s in range(1, sets + 1):
    print("=== セット", s, "開始 ===")
    
    if s == sets:
        print("ラストセット! 集中していこう。")
    else:
        print("まだいける。残りセット数:", sets - s)
    
    print()
    
    # ここに「セット内の回数カウント」を書く
Python

ここでやっていることは、

s を 1 から sets まで変えながら、
各セットの開始メッセージを出す

ということです。

if s == sets: で、

「最後のセットかどうか」

を判定し、
最後だけ特別なメッセージを出しています。

「どのセットにいるか」を意識してメッセージを変える
これが、外側のループの役割です。


コード④ 内側のループ(セット内の回数カウント)

1セットの中で「何回目か」を数える

外側のループの中に、
セット内の回数カウントを入れます。

for s in range(1, sets + 1):
    print("=== セット", s, "開始 ===")
    
    if s == sets:
        print("ラストセット! 集中していこう。")
    else:
        print("まだいける。残りセット数:", sets - s)
    
    print()
    
    for r in range(1, reps_per_set + 1):
        print("  →", r, "回目")
    
    print("=== セット", s, "終了 ===")
    print()
Python

ここでの構造は、

外側の for(s)
→ セットの開始メッセージ
→ 内側の for(r)で回数カウント
→ セットの終了メッセージ

という流れになっています。

r は「セット内の回数」を表す変数です。

「s はセット」「r は回数」
この役割の違いを、名前で意識しておくと
コードがぐっと読みやすくなります。


コード⑤ 回数に応じてメッセージを変える

内側のループにも if を足す

トレーニングっぽくするために、
セット内の回数でもメッセージを変えてみましょう。

for s in range(1, sets + 1):
    print("=== セット", s, "開始 ===")
    
    if s == sets:
        print("ラストセット! 集中していこう。")
    else:
        print("まだいける。残りセット数:", sets - s)
    
    print()
    
    for r in range(1, reps_per_set + 1):
        if r == 1:
            print("  →", r, "回目(ウォーミングアップ)")
        elif r == reps_per_set:
            print("  →", r, "回目(セットのラスト!)")
        else:
            print("  →", r, "回目")
    
    print()
    print("=== セット", s, "終了 ===")
    print()
Python

ここでは、

r == 1
→ 1回目だけ「ウォーミングアップ」

r == reps_per_set
→ 最後の回だけ「セットのラスト!」

それ以外
→ 普通の表示

というふうに、
「回数によってメッセージを変える」 ことをしています。

外側の if(セットごと)
内側の if(回数ごと)

が、それぞれ違うレベルの話をしていることに注目してください。


コード⑥ 最後の締めメッセージ

アプリとしての「終わり方」を決める

最後に、全体の締めメッセージを入れます。

print("おつかれさま。")
print("今日のトレーニングメニューはすべて完了しました。")
print("水分補給とストレッチも忘れずに。")
Python

これで、

設定
タイトル
セットごとの流れ
セット内の回数カウント
最後の締め

という、ひとつの「アプリのストーリー」が完成します。


完成コード(7日目版 繰り返しカウントアプリ)

全体を通して読んでみる

ここまでの要素を全部つなげると、
こんなコードになります。

sets = 3          # セット数
reps_per_set = 8  # 1セットあたりの回数

print("===== 自分用トレーニングカウンター(7 日目) =====")
print()
print("今日のメニューは")
print("  セット数:", sets)
print("  1 セットあたりの回数:", reps_per_set)
print()
print("それでは始めましょう。")
print()

for s in range(1, sets + 1):
    print("=== セット", s, "開始 ===")
    
    if s == sets:
        print("ラストセット! 集中していこう。")
    else:
        print("まだいける。残りセット数:", sets - s)
    
    print()
    
    for r in range(1, reps_per_set + 1):
        if r == 1:
            print("  →", r, "回目(ウォーミングアップ)")
        elif r == reps_per_set:
            print("  →", r, "回目(セットのラスト!)")
        else:
            print("  →", r, "回目")
    
    print()
    print("=== セット", s, "終了 ===")
    print()

print("おつかれさま。")
print("今日のトレーニングメニューはすべて完了しました。")
print("水分補給とストレッチも忘れずに。")
Python

このコードを、
上から下まで「物語」として読んでみてください。

設定を読む
タイトルを読む
セットごとの流れを読む
セット内の回数の動きを読む
最後の締めを読む

というふうに、
「コードをストーリーとして説明できるか」 を意識してみてください。


7日目で特に深く理解してほしいこと

コードは「設定 → 流れ → 繰り返し → 条件 → 締め」の物語

今日のコードは、構造としてはこうなっています。

設定を書く
アプリのタイトルと概要を出す
セットごとの流れを for で回す
セット内の回数を for で回す
if でメッセージを変える
最後に締めのメッセージを出す

この流れを、自分の言葉で説明できるなら、
あなたはもう「なんとなく書いている」段階を抜けています。

「この数字は何を表しているか」を常に意識する

sets は「全部で何セットか」
reps_per_set は「1セットあたり何回か」
s は「今何セット目か」
r は「セット内で今何回目か」

それぞれの数字に「役割」があります。

「この変数は何を表しているのか?」
を意識して名前をつけると、
自分のコードが一気に読みやすくなります。

「自分のためのアプリ」という視点を持つ

今日作ったトレーニングカウンターは、
そのままでも使えますが、

sets を自分のメニューに合わせて変える
メッセージを自分の言葉に変える

ことで、
「自分専用の小さなアプリ」 になります。


7日間の繰り返しカウントアプリを終えて

この7日間で、あなたはすでに、

for と range で、回数を自由に数えられる
ステップや向きを変えて、数え方をデザインできる
「今」と「残り」を同時に扱える
セット × 回数という二重のカウントを扱える
if と組み合わせて、回数やセットによってメッセージを変えられる

というところまで来ています。

ここから先は、

新しい文法を覚えることも大事ですが、
それ以上に、

「自分が本当にほしいカウンター」をひとつずつ作ってみること

が効いてきます。

例えば、

勉強のポモドーロ回数カウンター
ストレッチのセットカウンター
作業のタスク回数カウンター

どれも、
今日までにやった for + range + if + 変数
の組み合わせで作れます。

最後にひとつだけ、あなたに問いを投げます。

「この7日間で学んだ“繰り返しカウント”を使って、
 あなたは自分のために、どんなカウンターを作ってみたいですか?」

その答えが浮かんだ瞬間、
この7日間の学びは、ただの練習ではなく、
あなたの生活に食い込む“道具”になります。

タイトルとURLをコピーしました