知っておくと便利!GASでループから抜ける方法とコツ

僕、GASでループから抜ける方法がよくわからないんだ。どうしたらいいんだろう?
猫男
猫男
catman
catman
任せてくれ、catmanがGASでループを抜ける方法を伝授しよう。

GASでループを抜ける基本

ループは便利だが、時にはループから抜ける必要があることも。

GAS(Google Apps Script)でループをコントロールする方法を見ていこう。

break文でループを抜ける

ループを即座に抜けたいときは、break文が役立つ。以下の例を見てほしい。

function loopBreaker() {
  for (var i = 0; i < 10; i++) {
    if (i === 5) {
      break;
    }
    Logger.log(i);
  }
}

このコードは0から4までの数字をログに出力する。iが5になると、ループを抜ける。

なるほど、条件付きでループを止めることができるんだね!
猫男
猫男

continue文を使ってループを続ける

特定の条件でその回のループ処理をスキップしたいときは、continue文を使う。

function loopSkipper() {
  for (var i = 0; i < 10; i++) {
    if (i % 2 === 0) {
      continue;
    }
    Logger.log(i);
  }
}

このコードは奇数のみをログ出力する。continue文によって偶数の処理がスキップされる。

GASでループを抜ける応用〜どこから抜けるか指定する〜

さて、次は応用編だ。

ネストされたループでbreakを使う

ネストされたループ内でbreakを使う場合は、ラベル付きbreakが便利だ。

function nestedLoopBreak() {
  outerLoop:
  for (var i = 0; i < 3; i++) {
    for (var j = 0; j < 3; j++) {
      if (i === 1 && j === 1) {
        break outerLoop;
      }
      Logger.log('i: ' + i + ', j: ' + j);
    }
  }
}

ここでは、ラベル付きのbreakを用いて、特定の条件で外側のループを抜けることを可能にしている。

ラベルを使うと、どこからbreakするか指定できるんですね!
猫男
猫男

まとめ:GASでループ制御をマスターしよう

  • break文でループを即座に抜ける
  • continue文で特定の処理をスキップ
  • ネストしたループではラベル付きbreakが使える
これでGASのループ制御が少しわかった気がします!もっと書いて試してみたいです!
猫男
猫男
catman
catman
習うより慣れよだ。たくさんのコードを書き、自分のものにしていこう。

練習問題

1. forループを用いて1から10までの数字を出力し、5の倍数のときループを抜けるスクリプトを書いてみよう。
2. forループの中で偶数はスキップし、奇数のみを出力するスクリプトを書いてみよう。

 

 

解答・解説

// 問1の解答
function exitOnMultipleOfFive() {
  for (var i = 1; i <= 10; i++) {
    if (i % 5 === 0) {
      break;
    }
    Logger.log(i);
  }
}

// 解説
// break文を用いることで5の倍数になったらループを抜けるようにしています。

// 問2の解答
function skipEvenNumbers() {
  for (var i = 1; i <= 10; i++) {
    if (i % 2 === 0) {
      continue;
    }
    Logger.log(i);
  }
}

// 解説
// continue文を用いて、偶数の処理をスキップし、奇数のみをログ出力しています。

この解答例を実行することで、GASでのループ制御の理解を深めてください。