【GAS】if文を使った条件分岐の基本

今回の記事では、プログラムを書くに当たって重要な条件分岐を行うためのif文について解説していきます。

あわせて読みたい
GASのfor文によるループ処理 今回の記事では、プログラミングで繰り返し処理をする時に使うfor文について解説していきます。 【GASのfor文の基本的な書き方】 for文はfor(初期化式; 条件式; 増減式)...
目次

if文の使い方

if文は「if(条件式) { 処理 }」といった形式で使います。
それでは実際にサンプルコードをみてみましょう。

function myFunction(){
  var text = 'apple'
  var num = 5
  if(text == 'orange'){
    Logger.log('textはorangeです')
  }else{
    Logger.log('textはorangeではなく、' + text + 'です')
  }
  
  if(num > 10){
    Logger.log('numは10より大きいです')
  }else if(num < 0){
    Logger.log('numは0より小さいです')
  }else{
    Logger.log('numは' + num + 'です')
  }
}

サンプルコードでは文字列の一致と数値の大小を比較する条件分岐処理を書きました。
一致しているかどうかを判定するときには「==」を使って判定します。

また、elseという書き方は条件が一致しない場合の時の処理を実施する時に使用します。

大小比較では不等号を使うことによって、条件分岐することができます。
条件式に「==」や「>」といった記号が入っていますが、これらを比較演算子と呼び、比較演算子を使うことによって条件分岐をします
今回は基本的な物のみを書きましたが、他にも処理を分けたい場合にはこちらを参考にしてください。

https://vba-gas.info/gas-hikaku-ronri-enzanshi-1

複数条件を指定する

if文の条件式に複数条件を指定したい時には、論理演算子を書くことによってシンプルになります。

function myFunction(){
  var text = 'apple'
  var num = 5
  if(num <= 10 && text == 'apple'){
    Logger.log('numは10以下かつtextはappleです')
  }
  
  if(num > 0 || text == 'orange'){
    Logger.log('numが0より大きい、もしくはtextがorangeです')
  }
}

1つ目のif文では複数の条件式をすべて満たしている状態の時に分岐に入る「&&」を使用しています。
○○かつ□□のような時に処理をしたい場合に使います。

2つ目のif分では複数の条件式でいずれかの条件を満たしている場合の「||」を使っています。
○○もしくは△△の時といった場合です。

「&&」や「||」のことを論理演算子といいます。

ただ、別にこれを使うだけではなく細かい分岐をしたい場合には、if文の中にif文を書いた方がいい場合がありますが、if文の条件分岐が多くなりすぎるとどこ通ってるかわからなくなるので、注意が必要です。

特定の文字列が含まれているか判定

条件分岐をする際には文字を取得して、その文字に特定の文字列が含まれている場合のみ処理をしたいという時が多くあるかと思います。
そのような時はindexOfを使うとよいです。

function myFunction(){
  var text = 'apple orange peach'
  if(text.indexOf('orange') > -1){
    Logger.log('textにはorangeが含まれています。')
  }
}

indexOf関数はその文字列内で指定した文字列がどの位置にあるかを返してくれる関数です。
なければ-1が返ってくるので、-1より大きいを指定すればその文字列ないに含まれていることを判定することができます。

詳しくはこちらの記事をご覧ください。

あわせて読みたい
【GAS】文字列や配列検索に使うindexofについて徹底解説 今回の記事では、文字列や配列の検索時に使うindexOfについて、使い方から、事例を踏まえながら解説していきます。 【GASのindexOfメソッドとは】 indexOf関数とは文字...

日付の比較をする

条件分岐する時に日付を比較したい場合があるかと思います。そのやり方をご紹介します。
日付の大小を比較するにはそのまま不等号でできるわけではなく、一旦日付を秒数に直してからその大小を比較します。

function myFunction(){
  var date = new Date('2020/01/01 00:00:00');
  var today = new Date();
  
  if(date.getTime() < today.getTime()){
    Logger.log('todayよりdateは過去です')
  }
}

getTimeという関数を使うことによって秒数をとることができるので、比較したい日付ごとで使用します。

if文を1行で書く方法(三項演算子)

変数に値を入れ分ける時に使われたりしますが、可読性が悪くなる部分もあるので参考程度にご紹介します。

function myFunction(){
  var num = -5;
  var flg = (num > 0) ? true : false;
}

条件式 ? 真の時の値:偽の時の値
といった形式で使います。
サンプルでは変数flgにfalseが入ります。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次