0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🎓 GAS:反復(くり返し)を「日本語アルゴリズム → コード」で身につける

Posted at

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回ご飯を食べる
      日 × 時間帯 の組み合わせ

これがネストの考え方です。

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つがセットで動く

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?