if (expression; value1; value2)

if()は第1引数に式、第2引数に値1、第3引数に値2をとります。

式が真と評価された場合、値1を返し、それ以外の場合は、値2を返します。

// Sample
if(1 = 1; A; B)
> A

if(1 = 2; A; B)
> B

実例を見てみましょう。

ポケモンの一覧を検索[1]

ポケモンのAPIを使い、3対のポケモンの概要を検索します。

Iterator[6]

[1]で検索したそれぞれのポケモンについて詳細を検索するために、配列をバンドルに変換する「Iterator」モジュールを使います。

[1]では3体のポケモンが配列の要素として出力されているので、それぞれがバンドルに変換され、後続の処理は、計3回行われることになります。

ポケモンの詳細を検索[4]

それぞれのポケモンの詳細を検索します。

変数を定義[5]

2つの変数を定義しています。

1つ目の「if(4.data:name="bulbasaur"; "YES!!"; "NO...")」は、モジュール4のdataオブジェクトのnameが「bulbasaur」の場合は「YES!!」、異なる場合は「NO...」を返します。

2つ目の「if(4.data:height>=10; "TALL!!"; "SHORT!!")」は、モジュール4のdataオブジェクトのheightが10以上ならば「TALL!!」、10より小さければ「SHORT!!」を返します。

それぞれの実行結果を見ると、1体目のポケモンはbulbasaurなので「YES!!」、heightは7なので「SHORT!!」、2体目のポケモンはivysaurなので「NO!!」、heightは10なので「TALL!!」、3体目のポケモンはvenusaurなので「NO!!」、heightは20なので「TALL!!」を返しています。

以上、if ()で条件式の真偽に応じて返り値を変更することについて説明でした。