<if>
条件を評価し、真の場合の操作または偽の場合の操作を実行します。
構文
<if condition="1">
<true>
...
</true>
<false>
...
</false>
</if>
詳細
属性または要素 | 説明 | 値 |
---|---|---|
condition 属性 | 必須項目。この条件式が真の場合、<true> 要素内のコードが実行されます。偽の場合は、<false> 要素内のコードが実行されます。 | 整数値 1 (真の場合) または 0 (偽の場合) を求める式。この式では、この属性が含まれる <process> 要素で指定されているスクリプト言語を使用する必要があります。 |
name、disabled、xpos、ypos、xend、yend 属性 | "一般的な属性と要素" を参照してください。 | |
<annotation> 要素 | ||
<true> 要素 | オプション。条件が真の場合、<true> 要素内のアクティビティが実行されます。 | |
<false> 要素 | オプション。条件が偽の場合、<false> 要素内のアクティビティが実行されます。 |
説明
<if> 要素は式を評価し、その値に応じて、2 つのアクティビティ・セット (式の結果が真の場合のアクティビティと偽の場合のアクティビティ) のいずれかを実行します。
<if> 要素には、<true> 要素と <false> 要素を含めることができます。これらの要素は、式の結果が真の場合および偽の場合に実行されるアクションをそれぞれ定義します。
<true> 要素と <false> 要素を両方指定する場合、<if> 要素ではどちらを先に配置してもかまいません。
条件が真で <true> 要素がない場合、または条件が偽で <false> 要素がない場合、その <if> 要素では何も実行されません。
次の例では、<if> 要素を使用して、<call> 要素と <sync> 要素を組み合わせた結果を調整しています。
<sequence name="thread1">
<call name="A" />
<call name="B" />
<sync calls="A,B" type="all" timeout="10" />
// Did the synchronization time out before it finished?
<if condition='synctimedout="1"'>
<true>
<trace value="thread1 timeout: Call A or B did not return." />
</true>
// If not, then the calls came back, so assign the results.
<false>
<assign property="context.TheResultsFromEast"
value='syncresponses.GetAt("A")'
action="append"/>
<assign property="context.TheResultsFromWest"
value='syncresponses.GetAt("B")'
action="append"/>
</false>
</if>
</sequence>
この例の <if> アクティビティでは、実行コンテキスト変数 synctimedout が整数値 1 であるかどうかをテストする条件が指定されています。<call> に関するドキュメントで説明しているように、synctimedout の値は、0、1、または 2 となります。2 つの値が等しい場合、この <if> 条件は整数値 1 を受け取り、<true> 要素内の文が実行されます。それ以外の場合は、<false> 要素内の文が実行されます。