GAS(Google Apps Script)を始めたての初学者がつまずきやすいのが、
- 同じ処理を何回もくり返したい
- for 文の仕組みがよく分からない
- 「初期化」「条件式」「増減式」って何?
- while 文との違いは?
- ネスト(入れ子)for が難しい
この記事では、**「反復(for / while)のイメージをしっかりつかむ」→「実際に書ける」**を目的に進めます。
1. 反復(くり返し)とは?
「反復」とは、同じ処理を何回も自動でくり返す仕組みです。
🧠 日常のイメージ
- 腕立て伏せを10回くり返す
- 1ページ目から10ページ目まで読む
- 駅から家まで 20 歩く
プログラミングでは、これを for 文や while 文で表現します。
2. 基本の for 文(超重要)
もっともよく使う反復が for 文 です。
for (let i = 0; i < 5; i++) {
Logger.log(i);
}
読み下し(初心者向け)
| 部分 | 意味 |
|---|---|
let i = 0 |
カウンター変数 i を 0 からスタート(初期化) |
i < 5 |
i が 5 未満のあいだくり返す(条件式) |
i++ |
1回終わるごとに i を 1 ずつ増やす(増減式) |
👉 0,1,2,3,4 の5回くり返すという意味になります。
イメージ:
「数える係の i を 0 から出発させ、4 まで 1 歩ずつ進ませる。そのたびに中の処理を実行する」
3. while 文(条件が続く限りくり返す)
while 文は、「条件が true の間ずっとくり返す」タイプ。
let n = 0;
while (n < 3) {
Logger.log(n);
n++;
}
読み下し
- n が 3 未満ならずっとくり返す
- n が 3 になったら止まる
for と while の違い(初心者向け)
| 文 | 向いている場面 |
|---|---|
| for | 「回数が決まっている」くり返し |
| while | 「条件が続く限り」くり返す |
4. ネスト(入れ子)の for 文
for 文の中に for 文が入る形を「ネスト」と呼びます。
日常で言うと、
-
2日間の旅行で、
- 朝・昼・夜の3回ご飯を食べる
→ 日 × 時間帯 の組み合わせ
- 朝・昼・夜の3回ご飯を食べる
これがネストの考え方です。
for (let day = 1; day <= 2; day++) {
for (let meal = 1; meal <= 3; meal++) {
Logger.log(day + "日目の " + meal + " 回目の食事");
}
}
5. コメントだけで書く「日本語アルゴリズム」
ここからは、コードを書かずに日本語コメントだけでアルゴリズムを示します。
生徒が自分で GAS に変換する練習用に最適です。
🧪 サンプル①:1〜5 を順番に表示する(コメント版)
function showNumbers()
// ① カウンター変数を 1 から始める
// ② 5 まで 1 ずつ増やしながら表示する
// ③ for 文を使って「1,2,3,4,5」と順に出す
🕒 サンプル②:3 回だけ「おはよう」と表示する(コメント版)
function greet()
// ① for 文で 3 回くり返す
// ② 中で「おはよう」を Logger.log で表示する
💡 サンプル③:while 文で 0〜2 を表示する(コメント版)
function showWhile()
// ① 変数 n を 0 で用意する
// ② n が 3 未満の間 while 文でくり返す
// ③ 中で n を表示し、n を 1 増やす
🎯 サンプル④:九九(2の段)を表示する(ネストなし)
function twoDan()
// ① 1〜9 まで変数 i を動かしながら
// ② 「2 × i = 結果」を表示する
🎮 サンプル⑤:2日 × 3回(朝昼晩)を表示する(ネスト)
function nestedSample()
// ① 外側の for:1日目〜2日目
// ② 内側の for:1回目〜3回目の食事
// ③ 「●日目:●回目の食事」を表示する
6. 回答コード(翻訳版)
🧪 サンプル①:1〜5 を表示
function showNumbers() {
for (let i = 1; i <= 5; i++) {
Logger.log(i);
}
}
🕒 サンプル②:3 回「おはよう」
function greet() {
for (let i = 0; i < 3; i++) {
Logger.log("おはよう");
}
}
💡 サンプル③:while 文の例
let n = 0;
function showWhile() {
while (n < 3) {
Logger.log(n);
n++;
}
}
🎯 サンプル④:2 の段
function twoDan() {
for (let i = 1; i <= 9; i++) {
Logger.log("2 × " + i + " = " + (2 * i));
}
}
🎮 サンプル⑤:ネスト(2日×3回)
function nestedSample() {
for (let day = 1; day <= 2; day++) {
for (let meal = 1; meal <= 3; meal++) {
Logger.log(day + "日目の " + meal + " 回目の食事");
}
}
}
7. まとめ
- for 文:回数が決まったくり返しに最適
- while 文:条件が続く限りくり返す
- ネスト for:組み合わせの処理を作れる
- カウンター変数 i は「数える係」
- 初期化、条件式、増減式の3つがセットで動く