Google Apps Scriptで条件分岐は書けたほうがいいです。
基本的なやり方を知っておけばそんなに難しくないので、いくつか紹介します。
↓のような条件分岐を、それぞれのパターンごとに説明します。
18だったら「ジャストです!」を出力
19以上だったら「大人です!」を出力
18未満だったら「子供です!」を出力
上記の3つ以外の場合は「おいおいおい、なにか間違えてないかい?」を出力
if文 – 条件分岐の基本パターン
taroが18なのか、18以上なのか、18未満なのかによって条件分岐を行っています。
const ageCheck = () => {
const taro = 17
if (taro === 18) {
console.log('ジャストです!')
}
else if (taro > 18) {
console.log('大人です!')
}
else if (taro < 18) {
console.log('子供です!')
}
else {
console.log('おいおいおい、なにか間違えてないかい?')
}
}
実行結果

taroは17なので「子供です!」が出力されます。
if文による条件分岐の書き方
↓のような構文です。
ifと条件式の()の間にスペースを入れても入れなくても構いません。
多少読みやすくなるので私は入れます。
{ }の中には条件式がtrueだったときに実行される文を入れます。
つまり、if (taro === 18)がtrueだったときにconsole.log(‘ジャストです!’)が実行されます。
===の意味
条件式のtaro === 18で使っている===はtaroと18が等しいかを厳しく判定しています。
ゆるく判定する場合は==を使います。
===を使う場合は値の判定に加えて型、オブジェクトの判定もします。==は値の判定だけです。
==の場合は↓はtrueになります。
const valueCheck = () => {
const taro = 17
const jiro = '17'
console.log(taro == jiro)
}
// 出力結果 true
===はfalseです。
const valueCheck = () => {
const taro = 17
const jiro = '17'
console.log(taro === jiro)
}
// 出力結果 false
taroは17という数値で、jiroは17という文字列です。
==は型が違っても「同じ」と判定しますが、===は「違う」と判定します。
要するにどっち使えばいいのかってゆーと、===です。
==は使用禁止とおぼえておけばいいです。
最後に使っているelse
taroが数値の18ではない、19以上でもない、18未満でもない場合にelseの文が実行されます。
具体的にはtaroに文字列の18を代入した場合等です。どの条件にもひっかからないですからね。
const ageCheck = () => {
const taro = '18'
if (taro === 18) {
console.log('ジャストです!')
}
else if (taro > 18) {
console.log('大人です!')
}
else if (taro < 18) {
console.log('子供です!')
}
else {
console.log('おいおいおい、なにか間違えてないかい?')
}
}
実行結果

条件式で利用できる比較演算子
比較演算子というのは===や==などのように2つの値を比較する機能を持った記号です。
比較して条件に当てはまる場合はtrueを返し、そうではない場合はfalseを返します。
| 比較演算子 | 説明 | 例 |
| == (等価) | 2つの値が等しいかゆるく判定 | const taro = 17 taro == ’17’ →true(同じ) |
| === (厳密等価) | 2つの値が等しいか厳しく判定 | const taro = 17 taro === ’17’ →false(違う) |
| != (不等価) | 2つの値が異なるかゆるく判定 | const taro = 17 taro != ’17’ →false(同じ) |
| !== (厳密不等価) | 2つの値が異なるか厳しく判定 | const taro = 17 taro !== ’17’ →true(違う) |
| > (大なり) | 左の値が右よりも大きいか判定 | const taro = 17 taro > 18 →false (違う) |
| < (小なり) | 左の値が右よりも小さいか判定 | const taro = 17 taro < 18 →true (小さい) |
| >= (以上) | 左の値が右以上か判定 | const taro = 17 taro >= 18 →false(違う) |
| <= (以下) | 左の値が右以下か判定 | const taro = 17 taro <= 18 →true (以下) |
三項演算子(条件演算子)
if文の代わりに三項演算子を利用することもできます。条件演算子と呼ばれることもあります。
↓こういうやつです。
const ageCheck = () => {
const taro = 17
taro === 18 ? console.log('ジャストです!')
: taro > 18 ? console.log('大人です!')
: taro < 18 ? console.log('子供です')
: console.log('おいおいおい、なにか間違えてないかい?')
}
実行結果

もう少し単純な三項演算子を例にとって説明します。
const nameCheck = () => {
const name = 'taro'
name === 'taro' ? console.log('太郎です') : console.log('太郎ではありません')
}
最初にname === ‘taro’という条件式がきています。
この条件式がtrueのときに?から:までの処理が実行されます。
よってname変数に入っているのがtaroという文字列の場合、実行ログに「太郎です」が出力されます。
実行結果

もしname変数がtaroという文字列ではなかった場合は、:以降の処理が実行されます。
const nameCheck = () => {
const name = 'jiro'
name === 'taro' ? console.log('太郎です') : console.log('太郎ではありません')
}
実行結果

つまり、?から:まではtrueの場合の処理、:以降はfalseの場合の処理が実行されます。
if〜else〜と同じ感じですね。
:のうしろにさらに条件式をつけて、else if文のようなこともできます。
それが↓これ
const ageCheck = () => {
const taro = 17
taro === 18 ? console.log('ジャストです!')
: taro > 18 ? console.log('大人です!')
: taro < 18 ? console.log('子供です')
: console.log('おいおいおい、なにか間違えてないかい?')
}
switch文 – 等しいかどうか判定する条件分岐
if、三項演算子の他にswitch文というのもあります。
複数の条件で等しいかどうかを判定するときに使います。
const trySwitch = () => {
const name = 'taro'
switch (name) {
case 'taro':
console.log('太郎!いい服を着ているな')
break
case 'jiro':
console.log('次郎!夜風に当たりすぎるなよ')
break
default:
console.log('父さん、もう寝るよ')
}
}
実行結果

name変数の値をcaseで場合分けして、等しいかどうか判定しています。
たとえばcase ‘taro’:はname変数の値がtaroという文字列と等しいかどうか判定しています。
等しければconsole.log(‘太郎!いい服を着ているな’)が実行されます。
switch文のbreakとは
処理がbreakに到達すると、switch文は終了します。
なんだかよくわからないですよね。
実例を見るとわかりやすいかもしれません。たとえばbreakを書かないとします。
const trySwitch = () => {
const name = 'taro'
switch (name) {
case 'taro':
console.log('太郎!いい服を着ているな')
case 'jiro':
console.log('次郎!夜風に当たりすぎるなよ')
default:
console.log('父さん、もう寝るよ')
}
}
実行結果

なにやら珍妙な実行結果が得られてジーザスです。
breakを書かないとswitch文が終了せず、次のcaseに該当しなくても処理がそのまま実行されてしまいます。
要するにcaseごとに必ずbreakは書けよ、という話です。
switch文のdefaultとは
switch文のdefaultは、caseで書かれた条件式にすべて当てはまらなかった場合です。
if文のelse ifの条件式にすべて当てはまらなかった場合に最後のelseで最終処理されるのと同じです。
const trySwitch = () => {
const name = 'tamagoro'
switch (name) {
case 'taro':
console.log('太郎!いい服を着ているな')
break
case 'jiro':
console.log('次郎!夜風に当たりすぎるなよ')
break
default:
console.log('父さん、もう寝るよ')
}
}
実行結果

YES
