このページについて
このページではiPhone/iPad/Macで使う事ができるショートカットというアプリのif文の解説を行なっています。
更新履歴など
2022/9/22:iOS16の内容をもとに書き直しました。
2023/8/14:iOS17の内容を元に書き直しました。
if文
OS | 使用 |
---|---|
iPhone | ○ |
iPad | ○ |
Mac | ○ |
Apple Watch | ○ |
このif文自体の仕組みから解説していきます。このアクションは入力として受け取ったものを判定して、条件に一致する場合は真下のアクションを実行します。もし条件に一致しなかった場合、その他の場合の中にある処理を実行します。全ての処理が終わったら、if文の終了が実行されます。
つまりこのif文に○か×かを判断してもらって、○なら○用の処理を実行し、×なら×用の処理を実行してもらうという制御構造になります。このif文はどのプログラミング言語にもあるため、そちらを既に理解されている方にとっては簡単だと思います。
まずは入力から。ここに判断してほしいものを指定するんですが、指定するものがテキストか数字か日付かそれ以外のファイルかによって、条件が変わってきます。
入力にテキストを指定する場合、以下のような条件が出てきます。
次に数字の場合はこちらです。
そしてこちらが日付用の条件一覧です。
そして最後に、上記の全てに該当しないものです。今回は写真を選びましたが、音楽ファイル・PDFなども同様に扱います。
ここで一度、全ての条件を整理します。画像に出ている全ての条件をずらーっと解説していくので、使いたいやつだけでも覚えてみましょう。
- が次と等しい
- 指定したテキストと致するか場合にOKとする
- が次と等しくない
- 指定したテキストと一致しないか場合にOKとする
- 任意の値
- テキスト・数字・日付・すべてのファイル共に、何かしらの値や入力があればそれでOK。何もない(Null)なら違うという判定になります。
- 値がない
- 上の反対で、何もない(Null)ならOK、何かしらの値があると違うという判定になります。
- が次を含む
- 指定したテキスト等を含む場合にOKとする
- が次を含まない
- 指定したテキスト等を含まない場合にOKとする
- が次で始まる
- 指定したテキスト等から始まる場合をOKとする
- が次で終わる
- 指定したテキスト等で終わる場合にOKとする
- が次より大きい
- 指定した数値より大きい場合にOKとする
- が次よりも大きいか等しい
- 指定した数値と同じか、大きい場合にOKとする
- が次よりも小さい
- 指定した数値より小さい場合にOKとする
- が次よりも小さいか等しい
- 指定した数値と同じか、小さい場合にOKとする
- が次の範囲内
- 指定した数値Aと数値Bの間にあるならOKとする
- が次に完全一致
- 入力で受け取った日付と指定した日付が完全に一致すればOKとする
- が次に完全に一致しない
- 入力で受けとった日付と指定した日付が完全に一致しない場合にOKとする
- が次より後
- 入力として受け取った日付が、指定した日よりも後の日ならOKとする
- が次より前
- 入力として受け取った日付が、指定した日よりも前の日ならOKとする
- 今日である
- 入力として受け取った日付が、今日ならばOKとする
- が次の範囲内
- 日付版では日付Aと日付Bを指定し、入力の日付がその範囲内ならばOKとする
- が次の未来の期間内
- 入力として受け取った日付が、今日以降の指定した範囲内であればOKとする
- が次の過去の期間内
- 入力として受け取った日付が、今日以前の指定した範囲内であればOKとする
一通り書きましたが、どっかの条件に抜けがあるかもしれませんが正直これ全て使えれば十分すぎるので抜けてても大丈夫です。
実際の使い方
ここからは実際に処理を組んで、if文の使い方と処理の流れなんかをみていきます。まずは【テキスト】とif文の2つを配置します。そして条件は「テキストが次と等しい テスト」とします。そしてテキストの中にテストと入力しておきます。
そして結果がOKの場合に行う処理として、【デバイスを振動させる】を配置します。これはiPhone限定アクションなので、iPadやMacユーザーの方は【通知を表示】などでもOKです。
そして結果がNGの場合に行う処理として、【アラートを表示】を配置します。内容はなんでもOKです。
実際に組むとこんな感じになります。
実行するとまずは【テキスト】の中にある「テスト」という文字がif文に渡されます。それを受け取ったif文は「テストと等しいかどうか」を検証します。その結果、一致したので【デバイスを振動させる】が実行され、【アラートを表示】は処理されません。
if文は両方の処理が行われるわけではなく、条件に一致する方の処理だけを行います。なので今回は【アラートを表示】はスキップされました。
片方だけの処理を行う
if文はOKかNGのどちらか一方の処理しか行われません。そのため必ずどっちかの処理が発生するとも言えますが、必ずしも処理を設定しなければならないこともないんです。
以下の例では「数字が10から12の範囲内であればOKとする」という条件でデバイスを振動させるが実行されますが、if文のその他の場合がありません。この場合どうなるのかと言うと、何も起きません。正確には判定処理→NG→if文の終了という流れになります。
こんな時に使おう
if文はプログラミングにおいてもかなり便利というかこれがないと生きていけないシステムも多いです。というか基本的にはこれを使っていないシステムは無いと言っても良いレベルに大事なやつです。
まずは入力があるか無いかを調べる時ですね。ショートカットはいろんな方法で起動する事ができますが、その時々でスタート地点が違うと思います。iPhoneなら共有シートから実行したのか、直接起動したのか。Macならクイックアクションか、サービスメニューか。そういう違いから処理が正常に行われないのは勿体無いので、if文を使用して分岐させます。
例えば写真を扱うショートカットがあるとします。写真アプリの共有シートからショートカットを実行する場合、この時開いている写真が自動的に処理の対象として扱われます。ではショートカットを直接起動した場合の処理対象はどうなりますか?って時に、if文を使って以下のように組みます。
順番に処理をみていきます。まずは一番上の共有シートからイメージ・メディアを受け付けるはそのままの意味ですね。このケースの場合は写真を受け付けます。
そしてif文でショートカットの入力を調べて、「任意の値」ならばOKとします。任意の値は何かしら値があればOKとするというものです。もしOKならば真下のアクションが実行されます。今回は【写真を削除】です。
ショートカットを直接起動した場合にはショートカットの入力は無いので、判定結果はNGとなります。その際にその他の場合で、まずは対象の写真を選ぶための【写真を選択】アクションを使用します。後は【写真を削除】で目的が実行されます。
今回は分かりやすいように写真を削除を2回使用しましたが、if文の結果を受け付ける事ですみます。慣れてきたら以下のように組めることもわかってきます。
再利用可能な部分は再利用するというのがプログラミングの原則なので、この組み方の場合は「if文の結果に関わらず、最終的に行う処理はif文の後に配置する」が該当します。そしてif文の結果を受け取ることで、ショートカットの入力でも選択した写真でも、問題なく削除することができます。
こちらの方が簡単に作れて後から管理しやすい反面、if文の構造やら色々と細かい点を覚えるのが大変というデメリットもあります。慣れてきたらこう言うのにも挑戦してみてください。
if文にif文を入れる
次はif文にif文を入れる、いわゆる「ネスト」とか「入れ子」と呼ばれている組み方について。これらもプログラミングでは日常茶飯事なので他言語で慣れている方はすんなり組めると思います。
今回はif文を2つ使用します。そして判定に使うのは数字です。そして以下のように組みますが、よくみてみるとif文の真下にif文が入っています。
これはif文Aが「数字が10から50の間ならOKとする」でif文Bが実行されます。そのif文Bは「数字が20から40の間ならOKとする」という条件で【結果を表示】が実行されます。
数字は25にしたので、if文AはOKで、if文Bが実行されてこちらも条件を満たしているのでOKです。つまり最終的には【結果を表示】が実行されて終わります。
逆に数値が60とかだとif文Aの時点でNGになりますし、数字が45だったらif文BでNGになります。このように入れ子構造を組む場合は上から順に結果を想定しながら組むのがミスが起きにくい安定した方法と言えます。
まとめ
今回は制御の基礎であるif文の使い方を解説しました。判定したい材料を指定し、その材料がどういう条件でOKかNGかを決めるだけで処理ルートを変える事ができます。
今回は入れ子構造でシンプルなものを紹介しましたが、中には【繰り返し】の中に【繰り返し】を入れてさらに【if文】で分岐させるなど初見では意味不明な組み方をする場合もあります。if文はまだ簡単なので使い方をマスターしてしまいましょう。
ショートカット関連リンク
- ショートカットの基礎
- ショートカットの仕組み・作り方などの基礎を解説しています。
- ショートカットのカテゴリトップ
- ショートカットのカテゴリトップページへ移動します。
- オートメーションの使い方
- オートメーションの使い方などを解説しています。
- 使用端末による違い
- ショートカットを使用できる4端末による違いをまとめています。
- サンプルレシピ
- 中の人作のサンプルレシピ集です。役に立つものはありません。
- ウィジェットの解説
- ショートカットをウィジェットに表示する方法を解説しています。
- アクション一覧
- ショートカットで使用可能なアクションを全て掲載しています。(サードパーティアプリは除く)