For Statement (JA)
2.10 フォー ステートメント
T-Plan Robot Enterpriseはfor文をサポートしており、特定の条件が満たされる限り、値の範囲を反復したり、ループしたりすることができます。for文には2つの一般的な形式があります。
1.条件付きfor文
for 文の最初の型は、指定された論理式の結果が真である限り実行されます:
for (<statement1>; <boolean expression>; <statement2>) {
<コマンド>
}
ブール式はすべてのループの前に評価されるので、ループ内のコマンドは、式が最初からfalseであれば、まったく実行されない。
ステートメント1とステートメント2はEvalコマンドを使って評価され、'%26lt;変数%26gt;=%26lt;数値式%26gt;'のような構文になります。これらは空でも構いません。以下の例は等価であり、0から5までの変数'index'の値をループします:
for (index=0; {index}<6; index={index}+1) {
Type {index}
}
Eval index=0
for( ; {index} < 6; ) {
Type {index}
Eval index={index}+1
}
バージョン2.3以降では、文のヘッダー内の変数呼び出しが中括弧を省略する、より単純な構文もサポートしている:
for(index=0; index<6; index=index+1) {
}
2.あらかじめ定義された値の集合を反復処理するfor文
この書式では、あらかじめ定義された値の集合を繰り返し処理することができる:
for <変数名> in <スペースで区切られた値のリスト> {
<コマンド>
}
次の例では、"I speak a English, Spanish, Brazilian Portuguese. "という文章を入力する。
Type "I speak "
for language in English Spanish "Brazilian Portuguese" {
if ("{language}" == "Brazilian Portuguese") {
Type "{language}."
} else {
Type "{language}, "
}
}
変数で指定することもできる。バージョン3.0.1以降では、変数で指定したスペースを含む値をサポートしています。次のコードは、変数で値セットを指定した前の例を示しています。
変数呼び出しはダブルクォーテーションで囲んではならない。
Type "I speak "
Var VALUES="English Spanish \"Brazilian Portuguese\""
for language in {VALUES} {
if ("{language}" == "Brazilian Portuguese") {
Type "{language}."
} else {
Type "{language}, "
}
}
for文の実行は、コマンドによって中断することができる。Break コマンドで中断できる。現在のループは Continue コマンドでスキップできる。ループが入れ子になっている場合、break/continueコマンドは最も内側のfor文に適用されます。
次の例では、for 文と Waitfor Command を組み合わせて、リモートデスクトップが更新を停止するまで実行を継続する方法を示します。
# 無限ループ
for (; 0 == 0; ) {
# リモート画面が少なくとも20% 更新されるまで待つ。
# 10秒間更新されなかった場合、ループを抜けます。
Waitfor update extent=20% timeout="10s" ontimeout="break"
}