GASとJSで学ぶ!三項演算子の活用法 〜基本から応用まで〜

GASを使ってプログラミングを始めたんだけど、三項演算子って何だろう?どうやって使えばいいのかサッパリ分からなくて…
猫男
猫男
catman
catman
難しそうに見えるものも、意外とシンプルなことが多い。catmanに三項演算子は任せな!

GASでの三項演算子の基本

JavaScript(GASでも使用)には、三項演算子という便利な構文がある。これは、

条件によって値を選ぶためのコンパクトな if 文のような書き方

のことだ。基本構文は、

 条件式  ?  真のときの値  :  偽のときの値

だぞ。

 

例えば、次のコードを見てほしい。


const result = (score > 50) ? "合格" : "不合格"; 
Logger.log(result); // スコアが50より大きいなら「合格」、そうでないなら「不合格」を表示

条件 ? 真の場合 : 偽の場合 というシンプルな構造だ。

条件は「score > 50」、つまりスコアが50より大きいかどうか。

で、この条件式がtrue、つまりスコアが50より大きいならresultには「合格」を入れる。

一方、この条件式がfalse、つまりスコアが50以下ならresultには「不合格」を入れるんだ。

GASの三項演算子の応用例

さあ、ここからは三項演算子の応用だ。

三項演算子を連続で使用

複数の可能性に応じて異なる結果を返す三項演算子だ。


const level = (score > 80) ? "Excellent" : 
              (score > 60) ? "Good" : 
              "Need Improvement";
Logger.log(level); // スコアが80より大きいなら「Excellent」、60より大きければ「Good」、そうでなければ「Need Improvement」

スコアが80より大きいなら「Excellent」、80以下60より大きいなら「Good」、それ以外は「Need Improvement」だ。

多重の三項演算子を使うときは、可読性に注意しよう。

undefinedやnullのチェック

よく使う用途として、変数がnullundefinedであるかをチェックすることがある。


const value = myVar !== undefined && myVar !== null ? myVar : "デフォルト値";
Logger.log(value); 

myVarがundefinedまたはnullでない場合、その値を使用し、そうでなければ「デフォルト値」を使う。

この使い方で予期しないエラーを未然に防げるはずだ。

 

えっ、nullとundefinedの違いがわからない?

そんなときは「GASのnullとundefinedの違い」を復習してみよう。

たくさんの条件があるときに、三項演算子を使うと見やすいんですね。それにnullやundefinedのチェックでも使えるなんて便利!
猫男
猫男

何もしない用途

特殊な場合に、何も処理しないこともある。


isActive ? executeAction() : null; // isActiveがtrueのときのみexecuteActionを実行

isActiveがtrueのときのみexecuteActionを実行している。

NULL を意味的に「何もしない」選択肢として活用する方法だ。

catman
catman
三項演算子は一行でのコーディングが可能なため、コードがスッキリさ。ただし、複雑になりすぎないよう、必要なときだけ使うのが賢明だ。

練習問題

以下のコードで最も適切な三項演算子を使って、変数が10より大きいときに「大きい」、10以下のときに「小さい」を変数に代入しなさい。


let x = 12;
let description;

 

解答と解説

適切な三項演算子を用いることで、条件を簡潔に判定できる。


let x = 12;
let description = (x > 10) ? "大きい" : "小さい";
Logger.log(description); // x が 10より大きいため、「大きい」と表示される

この三項演算子は条件に基づいて変数descriptionに適切な文字列を代入する。

条件がtrueのときは「大きい」を、falseのときは「小さい」を返す構造だ。三項演算子を使えば、短くシンプルなコードが書ける。