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 である間 (これにより、!endingtrue のままであるため)、実行されます。

ending のブール値が true になると、break ステートメントにより、ループを中断できます。