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 文の書き方がよく分からない
  • []array[i] の意味がごちゃごちゃになる

この記事では、

  • 反復(for)と配列のイメージをしっかりつかむ
  • 日常生活で絶対にありそうな 5つのサンプルで練習

という流れで進めます。


1. 反復(くり返し)

「反復」は、
同じ処理を何回も、まとめて自動でやってくれる仕組みです。


🧠 イメージは「○回くり返す」

日常生活だと、こんな場面です。

  • 腕立て伏せを 10回くり返す
  • 1ページ目から10ページ目まで 順番に読む
  • 1日目〜7日目までの歩数を 順番にチェックする

プログラミングでは、これを for 文で書きます。


🔁 基本の for 文

for (let i = 0; i < 5; i++) {
  Logger.log(i);
}

読み下し:

  • let i = 0;
    → カウンター(数えるための変数)を 0 からスタート
  • i < 5;
    → i が 5 未満のあいだ、くり返す(0,1,2,3,4 の5回)
  • i++
    → 1回終わるごとに i を 1 ずつ増やす

👉 イメージとしては、

「i を 0 から始めて、4 になるまで 1 ずつ増やしながら、
そのたびに中身 { ... } を実行する」

と覚えればOKです。


2. 配列(ならべて持つ)

「配列」は、
同じ種類のデータを、1つのまとまりとして並べて持つ箱です。


📦 日常イメージ

  • 買い物リスト
    ["卵", "牛乳", "パン"]
  • 1週間の歩数
    [8200, 9500, 7000, 12000, 4000, 6000, 8000]
  • 好きな飲み物リスト
    ["コーヒー", "お茶", "水"]

🔢 配列の基本

const fruits = ["りんご", "バナナ", "みかん"];

Logger.log(fruits[0]);  // りんご
Logger.log(fruits[1]);  // バナナ
Logger.log(fruits[2]);  // みかん

ポイント:

  • 配列は [] で作る

  • 番号(インデックス)は 0 からスタート

    • 最初の要素:[0]
    • 2番目:[1]
  • 要素の数は fruits.length で分かる


🔁 配列 × 反復

配列は、反復(for)とセットで使う場面が多いです。

const fruits = ["りんご", "バナナ", "みかん"];

for (let i = 0; i < fruits.length; i++) {
  Logger.log(fruits[i]);
}

3. コメントだけで書く「日本語アルゴリズム」

ここでは、あえて コードを書かずに日本語だけ にします。

「このコメントをヒントに、自分で GAS コードを書いてください」

という使い方を想定しています。


🧪 サンプル①:1週間の歩数合計を出す(コメント版)

function sumSteps()

// ① 1週間分の歩数を配列で用意する(例:[8200, 9500, 7000, 12000, 4000, 6000, 8000])
// ② 合計を入れるための変数を 0 で用意する
// ③ 配列の要素を先頭から順番に取り出して、合計に足していく
// ④ 最後に「1週間の合計歩数は ○○ 歩です」と表示する

🛒 サンプル②:買い物リストを1行ずつ表示(コメント版)

function showShoppingList()

// ① 買いたいものを配列で用意する(例:["卵", "牛乳", "パン"])
// ② 配列の先頭から順番に1つずつ取り出す
// ③ 取り出したものを Logger.log で表示する(「買うもの:卵」のように)

🎬 サンプル③:映画3本の合計視聴時間(コメント版)

function movieTime()

// ① 映画ごとの再生時間(分)を配列で用意する(例:[120, 95, 135])
// ② 合計時間を入れる変数を 0 で用意する
// ③ 配列の要素を順番に足していき、合計時間を計算する
// ④ 合計時間が 300 分以上なら「見すぎ注意!」と表示する
// ⑤ そうでなければ「ちょうどいい映画デー」と表示する

📚 サンプル④:今日やるタスクを番号付きで表示(コメント版)

function showTasks()

// ① 今日やるタスクを配列で用意する(例:["メールチェック", "資料作成", "ミーティング"])
// ② 最初のタスクは「1. メールチェック」のように、番号をつけて表示したい
// ③ 配列を先頭から順番に回しながら、
//    「(番号). (タスク名)」の形式で Logger.log に出力する

📈 サンプル⑤:テストの平均点を出す(コメント版)

function averageScore()

// ① テストの点数を配列で用意する(例:[70, 85, 90, 60])
// ② 合計点を入れる変数を 0 で用意する
// ③ 配列の要素を順番に足していき、合計点を計算する
// ④ 平均点 = 合計点 ÷ 配列の要素数 で計算する
// ⑤ 平均点が 80 点以上なら「よくできました!」と表示する
// ⑥ そうでなければ「あと少しがんばろう」と表示する

4. 回答コード(翻訳結果)

ここからは、上記の日本語コメントを
そのまま GASコードに変換した回答例 です。


🧪 サンプル①:1週間の歩数合計を出す

function sumSteps() {
  const stepsArray = [8200, 9500, 7000, 12000, 4000, 6000, 8000];  // 1週間分
  let total = 0;

  for (let i = 0; i < stepsArray.length; i++) {
    total = total + stepsArray[i];
  }

  Logger.log("1週間の合計歩数は " + total + " 歩です");
}

🛒 サンプル②:買い物リストを1行ずつ表示

function showShoppingList() {
  const items = ["", "牛乳", "パン"];

  for (let i = 0; i < items.length; i++) {
    Logger.log("買うもの:" + items[i]);
  }
}

🎬 サンプル③:映画3本の合計視聴時間

function movieTime() {
  const times = [120, 95, 135];  // 分
  let total = 0;

  for (let i = 0; i < times.length; i++) {
    total = total + times[i];
  }

  Logger.log("合計視聴時間:" + total + "");

  if (total >= 300) {
    Logger.log("🎬 見すぎ注意!");
  } else {
    Logger.log("😊 ちょうどいい映画デー");
  }
}

📚 サンプル④:今日やるタスクを番号付きで表示

function showTasks() {
  const tasks = ["メールチェック", "資料作成", "ミーティング"];

  for (let i = 0; i < tasks.length; i++) {
    const number = i + 1;  // 0スタートなので +1 して表示
    Logger.log(number + ". " + tasks[i]);
  }
}

📈 サンプル⑤:テストの平均点を出す

function averageScore() {
  const scores = [70, 85, 90, 60];
  let total = 0;

  for (let i = 0; i < scores.length; i++) {
    total = total + scores[i];
  }

  const average = total / scores.length;

  Logger.log("平均点は " + average + " 点です");

  if (average >= 80) {
    Logger.log("📘 よくできました!");
  } else {
    Logger.log("📗 あと少しがんばろう");
  }
}

5. まとめ

  • 反復(for)は「○回くり返す」を自動化するしくみ
  • 配列は「同じ種類のデータをならべて持つ箱」
  • 配列と for はセットで使う場面が多い
  • まずは 日常の数字(歩数・買い物・映画・タスク・点数) を題材にして練習するのがおすすめ

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?