便利なGASレシピ集!に戻る場合は以下から
Contents
はじめに
どうも、ビジボットです。
今回の記事はGoogleAppsScript (GAS) の演算子に関する記事を書いていきます。演算子はプログラムを記述する上で必ず登場する大事なのポイントです。また、演算子の種類は「算術演算子」「代入演算子」「比較演算子」「論理演算子」など用途によって異なります。
演算子とは
値や変数などに対して、何かしらの処理を行う各種演算を表わす記号・シンボルを指します。例えば「+」や「-」も演算子です。これらを使うことでプログラム上で様々な表現を行うことが可能になります。
演算が式の中に複数含まれている場合、実行される優先順位が決まっています
以下関連記事は、初心者がGASを始める初歩的な内容をまとめた記事です。この関連記事にも演算に触れた記事を書いているので、ぜひ参考にしてみてください。
算術演算子 – レシピ
変数や値に対して、加算、減算、乗算、除算、剰余などを行うための処理です。どのプログラムでも一般的に利用されています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
function myFunction() { var x = 1; var y = 2; /* *x + yで足し算を実行 */ var z = x + y; Logger.log(z + ' = x + y '); /* *y - xで引き算を実行 */ z = y - x; Logger.log(z + ' = y - x '); /* *x/ yで割り算を実行 */ z = x / y; Logger.log(z + ' = x / y '); /* *x * yで掛け算を実施 */ z = x * y; Logger.log(z + ' = x * y '); /* *x % yで剰余を実施 */ z = x % y; Logger.log(z + ' = x % y '); Logger.log( '---インクリメント演算とデクリメント演算---' ); var w = 5; Logger.log('w→' + w + ' ++w→' + ++w + ' w++→' + w++ + ' w→' + w); var t = 5; Logger.log('t→' + t + '--t→' + --t + ' t--→' + t-- + ' t→' + t); } |
Logger.logの結果
1 2 3 4 5 6 7 8 9 |
[19-06-23 18:26:30:486 JST] 3 = x + y [19-06-23 18:26:30:486 JST] 1 = y - x [19-06-23 18:26:30:487 JST] 0.5 = x / y [19-06-23 18:26:30:487 JST] 2 = x * y [19-06-23 18:26:30:488 JST] 1 = x % y [19-06-23 18:26:30:488 JST] ---インクリメント演算とデクリメント演算--- [19-06-23 18:26:30:488 JST] w→5 ++w→6 w++→6 w→7 [19-06-23 18:26:30:489 JST] t→5--t→4 t--→4 t→3 |
わかりやすいサンプルだとこんな感じですね。算術演算は数学で習ったような「足し算、引き算、乗算、除算、剰余」があります。
インクリメント演算とデクリメント演算
インクリメントとは、数字を1繰り上げる、デクリメントとは、数字を1繰り下げるといった処理を指してます。GASのインクリメントとデクリメントは、書き方が2通りあります。
インクリメント:『変数 ++』または『++ 変数』
デクリメント:『変数 –』または『– 変数』
演算子の『+』や『-』をつける位置が先か、後かによって処理結果が変わって来るので注意が必要です。
+ | 数値の加算、もしくは文字列の結合 | 1 + 2 = 3 ‘1’ + ‘2’ = ’12’ |
– | 数値の減算、または符号の反転 | 2 – 1 = 1 1 – ( -1 ) = 2 |
* | 数値の乗算 | 2 * 2 = 4 |
/ | 数値の除算 | 2 / 2 = 1 |
% | 数値の剰余 | 5 % 3 = 2 |
変数++ ++変数 | インクリメント | ログ結果参照 |
変数– –変数 | デクリメント | ログ結果参照 |
代入(複合代入)演算子 – レシピ
GASの複合演算子は以下を表現する時に簡単に表現できるメリットがあります。
『x = x + 3;』
この処理でも間違いないですが、複合演算子を使うともっとシンプルに表現する事ができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function myFunction() { var x = 3; Logger.log('x→' + x); x += 3; Logger.log('x += 3→' + x); // x = 6になる (3+3) x -= 3; Logger.log('x -= 3→' + x); // x = 3になる (6-3) x *= 3; Logger.log('x *= 3→' + x); // x = 9になる (3*3) x /= 3; Logger.log('x /= 3→' + x); // x = 3になる (9/3) x %= 3; Logger.log('x %= 3→' + x); // x = 0になる (3/3 余0) } |
Logger.logの結果
1 2 3 4 5 6 |
[19-06-23 18:27:39:721 JST] x→3 [19-06-23 18:27:39:722 JST] x += 3→6 [19-06-23 18:27:39:723 JST] x -= 3→3 [19-06-23 18:27:39:723 JST] x *= 3→9 [19-06-23 18:27:39:723 JST] x /= 3→3 [19-06-23 18:27:39:724 JST] x %= 3→0 |
代入演算子の代表的なものは「=」です。それにさらに算術演算を加えてスクリプトをシンプルにする書き方を複合代入演算子と言います。
= | 左辺の変数に値を代入 | 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の余りです) |
比較演算子 – レシピ
比較演算子とは、AとBのデータが正しいか?AとBは異なるか?AよりBは大きいか?、AよりBは小さいか?、AはB以上か?、AはB以下か?などを記述して比較して、その処理がTRUEだったら、FALSEだったらで処理を分けたりする時に使います。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function myFunction() { var x = 3; Logger.log(3 == '3'); // true Logger.log(3 === '3'); // false Logger.log(x === 3); // true Logger.log(3 >= 3); // true Logger.log(3 <= 3); // true Logger.log(3 != '3'); // false Logger.log(3 !== '3'); // true Logger.log(3 > 3); // false Logger.log(3 < 3); // false } |
Logger.logの結果
1 2 3 4 5 6 7 8 9 |
[19-06-23 18:43:13:453 JST] true [19-06-23 18:43:13:454 JST] false [19-06-23 18:43:13:454 JST] true [19-06-23 18:43:13:455 JST] true [19-06-23 18:43:13:455 JST] true [19-06-23 18:43:13:456 JST] false [19-06-23 18:43:13:456 JST] true [19-06-23 18:43:13:457 JST] false [19-06-23 18:43:13:457 JST] false |
主にif文を記述する際に使います。また比較演算子と組み合わせて論理演算子と一緒に使う場合があります。
== | 左辺と右辺が等しければtrue | 1 == 1 //true 1 == ‘1’ //true |
!= | 左辺と右辺が等しくなければtrue | 1 != 1 //false 1 != 2 //true |
< | 左辺が右辺より小さければtrue | 1 < 2 //true 2 < 2 //false |
<= | 左辺が右辺以下であればtrue | 1 <= 2 //true 2 <= 2 //true |
> | 左辺が右辺より大きければtrue | 1 > 2 //false 2 > 2 //false |
>= | 左辺が右辺以上であればtrue | 1 >= 2 //false 2 >= 2 //true |
=== | 左辺と右辺がデータ型も含めて等しければtrue | 1 === 1 //true 1 === ‘1’ //false |
!== | 左辺と右辺がデータ型も含めて等しくなければtrue | 1 !== 1 //false 1- !== ‘1’ //true |
論理演算子 – レシピ
比較演算子と合わせて使うパターンが多いです。「&&」はAND、「||」はOR、「!」はNOTを意味します。
1 2 3 4 5 6 |
function myFunction() { var x = 3; Logger.log(3 == '3' && 3 === '3'); // false Logger.log(3 == '3' || 3 === '3'); // true Logger.log(!(3 == '3' || 3 === '3')); // false } |
Logger.logの結果
1 2 3 |
[19-06-23 18:55:16:412 JST] false [19-06-23 18:55:16:413 JST] true [19-06-23 18:55:16:414 JST] false |
&& | 左辺と右辺がいずれもtrueならばtrue | 1 === 1 && 2 === 2 true 1 === 2 && 2 === 2 false |
|| | 左辺と右辺のどちからがtrueならばtrue | 1 === 2 || 2 === 2 true 1 === 2 && 2 === 3 false |
! | 条件式の真と偽の値を反転させる | !(1 === 1) false !(1 === 2) true |
プログラムを書いていく上で、演算子は必ず役に立ちます。
様々な使い方ができるので、しっかりと覚えておきましょう!
便利なGASレシピ集!に戻る場合は以下から