条件判断ブロック
最終更新日: 2022年7月25日
条件判断のブロック
「条件判断」タブのブロックは次の通りです。

もし〜ならば

「もし〜ならば」ブロックは図のように上部に「条件となるブロック」を、下部に「条件が成立した時に処理するブロック」をセットして使います。
「条件となるブロック」は一つだけです。
後述する「X =(≠/>/≧/</≦) Y」ブロックを使うことができます。
「条件が成立した時に処理するブロック」は複数個、挿入することができます。
「もし〜ならば」ブロックの階段をつくる
ギアアイコンをクリックすると「そうでなくもし」「そうでなければ」という二つのブロックが表示されます。これをマウスで選択し、ドラッグ&ドロップすることで、「もし〜ならば」ブロックの階段をつくることができます。

「そうでなくもし」ブロックを追加することで、「もし〜ならば処理Aを、そうでなくもし〜ならば処理Bを」というような分岐処理を実現できます。

「そうでなくもし」ブロックは何段にも重ねることができます。これを「もしブロックの階段」と呼びます。一つ一つのブロックに条件ブロックをセットします。

階段の最後に「そうでなければ」ブロックを追加すると、上の条件をすべて満たさなかった場合(どれでもなかった場合)に行う処理を記述することができます。

X =(≠/>/≧/</≦) Y

「もし〜ならば」ブロックの条件部(上の部分)にセットすることができます。
ブロックの左側(「左辺」といいます)に、比較したいブロックをセットします。このブロックには「変数」または「モデルの項目」が入ります。
ブロックの右側(「右辺」といいます)に、比較したい「値」ブロックをセットします。値は固定値("0" や "1" などの数値ブロック, "名前" などの文字列ブロック)を使うこともできますし、「変数」を使うこともできます。
~かつ(または)~
条件となるブロックは「1つ」しか作ることができません。しかし「かつ(または)」ブロックを組み合わせることで、複数の条件をひとつにまとめることができます。

このブロックをさらに組み合わせることができます。「〜かつ〜かつ〜かつ」を実現したい場合、「〜かつ〜」ブロックを、もう一つの「〜かつ〜」にセットします。

次のように並びを変えても意味は同じです。

Tips
判断処理は左側から順に行われます。そのため、左からみて最初に条件がfalse
(不成立)となった段階で、右側の判断は自動的に行われなくなります。そのため不成立になる可能性が高いものを、より左側に配置するとよいでしょう。
ブロックを折りたたむ
ブロックを選択し、マウスで右クリックすると、操作メニューが開きます。

"ブロックを折りたたむ" と、コンパクトな表示に切り替わります。

外部入力
同じく操作メニューから「外部入力」を選ぶと、ブロックの形状が変わります。意味はかわっていません。形状だけが変わっています。

両方のブロックを何も「外部入力」とした例を示します。

~ではない

「〜ではない」ブロックと組み合わせると、意味を反転させます。上の例は "Xが0ではない" となります。
true / false

Wagbyが提供する「関数」のいくつかは、戻り値がtrue
またはfalseを返します。これを判定ブロックと組み合わせるときに、true
ブロックやfalse
ブロックを使うことができます。
null
Wagbyではnull
は「変数」または「(項目の)値」が "未入力"(または"未設定")という特別な意味をもちます。

関数を利用する
ISBLANK関数を使った場合、未入力だけでなく、空文字 ("") かどうかの判定もできます。文字列型の場合は ISBLANK 関数を利用する方がよいです。

同様に、リストボックスの入力判定はSELECTED関数が利用できます。

このように、実際にはnull
で判定するケースは多くありません。未入力の判定は次のように整理できます。
判定方法の早見表
型 | 判定方法 |
---|---|
文字列 | ISBLANK関数 |
日付/時刻/日付時刻 | ISBLANK関数 |
数値 | ISEMPTY関数 |
リストボックス/ラジオボタンが未入力かどうか | ISEMPTY関数 |
リストボックス/ラジオボタンが"未選択"かどうか | SELECTED関数 |
チェックボックスの選択されている数 | CHECKED関数 |
チェックボックスに指定のID部が含まれているか | CONTAINS関数 |