while/break/continue (ルール・フロー内)
while キーワードは、ループを実行します。
目的
ルール・フローのこの条件付きステートメントは、ブール式値が true である間、ループを実行する場合に使用します。
コンテキスト
ルール・フロー本体
構文
while (test)
{ruleflowStatement}
説明
test 引数は、Java™ プログラミング言語の場合と同様に、任意の適切なテストにすることができます。この値が true である間、while ブロック内のステートメントが実行されます。while ブロック内には、任意のルール・フロー・ステートメントを含めることができます。値が false になると、エンジンは while ブロックの実行を止め、while ステートメントの後からルール・フローの実行を再開します。
break ステートメントは、while ループを中断できます。エンジンが break ステートメントを検出すると、while ループは中断され、ルール・フローの実行は while ステートメントの後から続行されます。
continue ステートメントを while ループに含めることができます。
エンジンが continue ステートメントを検出すると、ルール・フローの実行は while ステートメントに再度戻り、test を再評価し、その値に従ってルール・フローの実行を続行します。
例
ruleset Connect4
{
// The latest move
int turn;
// Who's the winner, what is the connect4, and any other reason
// to end the game.
int winner = Constants.None;
Connect4 connect4;
boolean ending = false;
};
flowtask main
{
body =
{
while(!ending)
{
if (turn == Constants.Player1) ChooseMovePlayer1;
else ChooseMovePlayer2;
CheckMove;
if (ending) break;
UpdateDistance;
ExpandObjects;
DetectConnect4;
if (ending) break;
DetectGridFull;
if (ending) break;
ChangeTurn;
}
EndOfGame;
}
}この例は、while ステートメントを示しています。
while ブロックは、変数 ending の値が false である間 (これにより、!ending が true のままであるため)、実行されます。
ending のブール値が true になると、break ステートメントにより、ループを中断できます。