【GAS】for文の書き方と実例

GAS

for文はforループとも呼ばれ、処理を繰り返しする場合に使用します。取得した配列を一つずつ処理できるので、スプレッドシートの各行を処理したいときに便利です。

今回そんなfor文についてご説明します。

for文の書き方

for文は次のように書きます。

for (初期化式; 条件式; 更新式) {
    // 繰り返し行う処理
}

次から順にご説明します。

初期化式

例:for (var i = 0; i < 5; i++)

初期化式は繰り返し処理の開始時に1度だけ実行され、初期化式に設定する変数をカウンター変数と呼びます。カウンター変数は名前の通り、繰り返し処理の回数を数えて入れておく変数です。初期化式で正しい数字を設定しておくことで、ループ内の変数が正しい初期値を持つことが保証されます。

条件式

例:for (var i = 0; i < 5; i++)

条件式は、ループ処理において繰り返しの終了条件を定義するために使用されます。forループでは、条件式は各繰り返しの開始時に評価され、その結果が真の場合は繰り返しが継続します。偽の場合は繰り返しが終了します。上記の場合は、初期値が0なので5回繰り返しがされれば終了です。

更新式

例:for (var i = 0; i < 5; i++)

更新式は、forループ内の各繰り返しの終了時に実行される式です。通常、更新式にはカウンター変数の値を更新する処理が含まれます。++はインクリメント演算子と呼ばれるもので、繰り返し処理が1回終わるごとに初期値(例で言う変数iに)1を足しています。

for文を使った例

for文を使った実例を使ってさらに認識を深めましょう。

文字を5回繰り返す

りんごと5回繰り返します。

function myFunction() {
for(var i = 0; i < 5; i++){
console.log("りんご");
}
}

var i = 0で初期値が0としています。繰り返し処理を終わる時の条件式が「i < 5」。初期値が0なので、1回目の繰り返しのときは0<5となり「真」と評価されます。更新式がi++なので1回繰り返し処理を行うと、カウンター変数iに1が足され、次の繰り返し処理時にはiの変数は1の数字を持っていまさす。

もちろん2回目も繰り返し処理も1<5なので「真」の評価が下されます。繰り返しが継続され、更新式によってさらに1が足されます。

そうして5回目の繰り返し処理時、条件式は5<5となりました。この式は正しくないので「偽」と判定されます。こうしてfor文は繰り返しを停止するのです。

結果として「0」「1」「2」「3」「4」の5回、繰り返しが行われたことになります。

計算問題をする

for文を使って計算問題を行なってもらいましょう。下記は繰り返し処理することで1をnumberに1を足していくコードです。

function myFunction() {
  var number = 5;
  for (var i = 0; i < 5; i++) {
    //+=再代入するインクリメント
    var max = number += 1;
  }
console.log(max);
}

実行ログを見てみると繰り返しごとに1が足されていくのがわかります。for{}内でnumber += 1の処理をしているためです。+=は左の値に右の値を足して、再代入する演算子です。このようにfor文を使って繰り返し計算問題を行うことも可能です。

また、numberの定義はfor外でなければなりません。for文内でもできますが、ループ内で毎回定義して1を足しているだけなので結果は6です。繰り返し足していきたいのであれば、ループ外で定義しておく必要があります。

繰り返し処理中のIF(条件分岐)

繰り返し処理中に条件分岐してみましょう。条件分岐はifを使用します。次は奇数の時に「奇数です」とログを出力し、偶数の時に「偶数です」とログを出力するプログラムです。

function myFunction() {
  for (var i = 0; i < 5; i++) {
    if (i % 2 === 0) {
      Logger.log(i + " は偶数です");
    } else {
      Logger.log(i + " は奇数です");
    }
  }
}

% 演算子は剰余を求める演算子であり、割り切れて答えが0になるのを利用して偶数か奇数か判断しています。if()のカッコ内には条件が入り、iの値が2で割った時に0ならば「真」と判断されて{}の処理が行われます。=== は右と左が完全に一致しているかを比較するための演算子です。偽であればelse以降{}の処理が行われます。

まとめ

以上、for文の使い方についてご紹介しました。for文を使うことでできることも多くなりますので、是非使って見てくださいね!

コメント

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