『GAS 完全入門』基礎② ★☆☆ – ビジボット

ビジネス

はじめに

今回のビジボットは、前回同様『『Google Apps Script 完全入門』を買って基礎入門① ☆☆☆ – ビジボット』の続きを書いていきます!
GASに限らず、プログラム本は徐々に難しくなっていく傾向があるのでなるべく理解を噛み砕いて説明していきます。しかし、それでも難しい場合は立ち止まらず進んじゃってください!だってせっかく書いた方が楽しいのに止まっちゃうなんてもったいないですから!

↓↓前回記事↓↓

『GAS 完全入門』基礎① ☆☆☆ – ビジボット

2019年2月25日

それでは早速始めていきます!

1.計算 – 続き

前回は演算による処理を記載しました。
ここでは『インクリメント演算子』と『デクリメント演算子』について説明していきます。

書き方は2通りあります。
『変数 ++』または『++ 変数』です。演算子の『++』をつける位置によって処理結果が変わってくるので、以下コードを見てください。
基本、数字を1繰り上げるというアクションは変わらないのですが、変数の前につけると数字が1繰り上がってから結果が表示される。変数の後につけると処理が終わってから数字が1繰り上がる結果になってます。

ログ結果はこんな感じ。

ログ結果

インクリメントと同様、書き方は2通りあります。
『変数 –』または『– 変数』です。演算子の『–』をつける位置によって先ほど同様処理結果が変わってくるので、以下コードを見てください。
基本、数字を1繰り下げるというアクションはインクリメントと逆の機能です。変数の前につけると数字が1繰り下がってから結果が表示される。変数の後につけると処理が終わってから数字が1繰り下がる結果になってます。

ログ結果はこんな感じ。

ログ結果

代入演算子とは、通常の演算子とは異なり、変数に値を代入する演算子が代入演算子です。
今まで出てきていた『=』は、最も代表的な代入演算子ですが、ここで紹介するのは算術演算と同時に代入を行う『複合代入演算子』です。

複合演算子

=左辺の変数に値を代入x = 3(xは3です)
+=左辺の値に右辺の値を加算して代入x += 3(xはx+3です)
-=左辺の値から右辺の値を減算して代入x -= 3(xはx-3です)
*=左辺の値に右辺の値を乗算して代入x *= 3(xはx*3です)
/=左辺の値を右辺の値で除算した値代入x /= 3(xはx/3です)
%=左辺の値を右辺の値で除算した剰余を代入x %= 3(xはx/3の余りです)

ログ結果はこんな感じ。

ログ結果

2. 制御構文

プログラムを記述していく上で、『分岐処理』と『繰り返し処理』の記述はかなりマストになってきます。

if文の条件式は比較する値が『一致していたら…』,『一致していなかったら』…など日本語でいうところの『もし〜であれば…』と表現することができる処理のことです。以下コードを実行してみます。

その前に…(笑)
しっかりと分岐処理を入る手前で『比較演算子』について覚えないといけません!
『==』と『===』は何が違うの?って疑問に思う方もいると思いますが、理解していないとプログラムが思わぬ結果をもたらす場合があるので、しっかりと覚えましょう!

比較演算子

==左辺と右辺が等しければtrue1 == 1 //true
1 == ‘1’ //true
!=左辺と右辺が等しくなければtrue1 != 1 //false
1 != 2 //true
<左辺が右辺より小さければtrue1 < 2 //true
2 < 2 //false
<=左辺が右辺以下であればtrue1 <= 2 //true
2 <= 2 //true
>左辺が右辺より大きければtrue1 > 2 //false
2 > 2 //false
>=左辺が右辺以上であればtrue1 >= 2 //false
2 >= 2 //true
===左辺と右辺がデータ型も含めて等しければtrue1 === 1 //true
1 === ‘1’ //false
!==左辺と右辺がデータ型も含めて等しくなければtrue1 !== 1 //false
1- !== ‘1’ //true

ログ結果はこんな感じ。

ログ結果

if文でやった処理は『一致していたら…』という処理のみでしたが、次は処理が『一致していたら…』,処理が『一致していなかったら』という分岐文を追加していきます。
elseは結果がtrueじゃなかったら実行されます。

ログ結果はこんな感じ。

ログ結果

if文の最後は、else if文です!
簡単に言えば、『もし〜であれば』,『もし〜であれば』,『もし〜であれば』…を繰り返し記述する方法です。
結果がtrue or falseだけでない場合に使います。

ログ結果はこんな感じ。

ログ結果

if文による条件分岐では、条件式がtrueかfalseかといった2通りしか分岐を出来ずelse if~を使って条件式を追加することで実現しましたが、『switch文』を使うことでよりシンプルに表現することが出来ます。

※各caseの末尾にある『break』文は省略することが出来ますが、他のも実行されるケースがあるので省略非推奨です

ログ結果はこんな感じ。

ログ結果

while文では、同じような処理を何度も繰り返し実行したい場合に、一つのスクリプトを記述することで指定する条件が来る(条件のtrueが終わる)まで処理を繰り返してくれます。
for文と違うのはfor文の場合、特定の数値が繰り上がってその数値まで実行するというものですが、while文の場合は条件式を指定することが出来ます。

※繰り返し処理を記述する場合、無限ループにならないように気をつけましょう

ログ結果はこんな感じ。

ログ結果

for文では、同じような処理を何度も繰り返し実行したい場合に、一つのスクリプトを記述することで指定する条件が来る(条件のtrueが終わる)まで処理を繰り返してくれます。
while文と違うのはwhile文の場合、特定の条件式を記述しその条件がまでtrueの間は実行するというものですが、for文の場合は特定の数値が繰り上がってその数値まで実行していきます。

※繰り返し処理を記述する場合、無限ループにならないように気をつけましょう

ログ結果はこんな感じ。

ログ結果

余談…
switch文の中で処理を中断するためにbreak文を使用しましたが、繰り返し処理の中でもbreak文を使用することが可能です。以下コードはiのカウント数が5だった場合にtrueとしてbreak文が実行されます。

ログ結果はこんな感じ。

ログ結果

今回はここまでです!
switch文やwhile文など、全く使ったことなかったですがシンプルに書きやすいなって感じたので次から使っていきたいなって思いました。
最後までお付き合い頂き、ありがとうございました!