ForEach set Do command

 ForEach set As name Do command

 ForEach set [As name] [Do]
   commands
 Next

Iteration over object array. The set is an array of objects, such as Ship or Planet. The loop will iterate through all objects in that set, and execute the command or command list for each of them.

By default, with no As name clause, the commands will be executed in an appropriate context, as if With were used. For example,

 ForEach Minefield Do
   If LastScan < Turn-10 Then Delete
 Next

will delete all minefields not seen within the last 10 turns.

If As name is given, name is a name of a variable. For each iteration, name will be set refer to the respective object. For example,

 Dim mf
 ForEach Minefield As mf Do
   If Distance(mf, 1010, 1020) < mf->Radius Then Print mf->Id
 Next

will print the Ids of all minefields that cover (1010,1020). This syntax is available since PCC2 2.40.7.

See also: Break, Continue, For, Do, Count(), Find(), Elementary Commands