スキップしてメイン コンテンツに移動

GAS 条件分岐完全ガイド

GAS 条件分岐完全ガイド

GAS基礎と条件分岐の概要

Google Apps Script(GAS)はJavaScriptをベースにしたスクリプト言語で、Google Workspaceのサービスを自動化できます。条件分岐はスクリプトの制御フローを決定する重要な構文です。GASでの条件分岐は、JavaScriptと同様に ifelseelse ifswitch を使って実装します。

条件式は truefalse を返す式で、比較演算子(=====!=!==>< など)や論理演算子(&&||!)を組み合わせて作ります。

以下では、GASでよく使われる条件分岐の書き方を具体例とともに解説します。

if文・else・else ifの使い方

最も基本的な条件分岐は if 文です。条件式が true のときにブロック内のコードが実行されます。

function checkNumber(n) {
  if (n > 10) {
    Logger.log('10より大きい');
  }
}

複数の条件を順に判定したい場合は else if を使います。最後に else を置くことで、すべての条件が偽の場合の処理を記述できます。

function classify(n) {
  if (n > 10) {
    Logger.log('大きい');
  } else if (n === 10) {
    Logger.log('ちょうど10');
  } else {
    Logger.log('小さい');
  }
}

条件式内で論理演算子を組み合わせると、複雑な判定も簡潔に書けます。例えば、n が 5 以上 15 以下の場合は次のように書けます。

if (n >= 5 && n <= 15) {
  Logger.log('範囲内');
}

switch文と条件式

複数の等価比較を行う場合、switch 文が便利です。switch は評価式の結果に一致する case を実行します。

function dayName(day) {
  switch (day) {
    case 1:
      Logger.log('月曜日');
      break;
    case 2:
      Logger.log('火曜日');
      break;
    default:
      Logger.log('その他');
  }
}

JavaScript(GAS)では switch のケースは厳密比較(===)で判定されるため、型が一致しないとマッチしません。数値と文字列を混在させる場合は注意が必要です。

条件式を使って switch を拡張することも可能です。例えば、範囲判定を行う場合は switch(true) を使うテクニックがあります。

function rangeCheck(n) {
  switch (true) {
    case (n < 5):
      Logger.log('5未満');
      break;
    case (n <= 10):
      Logger.log('5以上10以下');
      break;
    default:
      Logger.log('10超');
  }
}

比較演算子・論理演算子とtrue/false

比較演算子は値の大小や等価性を判定します。== は型変換を行い、=== は型も含めて厳密に比較します。逆に !=!== も同様です。

if (a == b) { /* 型変換あり */ }
if (a === b) { /* 型も含めて等しい */ }

論理演算子は複数の条件を組み合わせる際に使います。&& は両方が true のときに true を返し、|| は片方が true なら true を返します。! は真偽値を反転します。

if (a > 0 && b < 10) { /* 両方の条件が満たされる */ }
if (!(c === d)) { /* 等価でない場合 */ }

GAS の Logger.log で結果を確認すると、truefalse がそのまま出力されます。条件式の結果をデバッグする際は、Logger.log で中間値を確認すると便利です。

この記事はAIによって作成されました。

コメント