Loops are considered to be countable if they take any of the following forms:
Countable for loop syntax with single statement >>-for--(--+--------------------+--;--exit_condition--;--increment_expression--)--> '-iteration_variable-' >--statement---------------------------------------------------><
Countable for loop syntax with statement block >>-for--(--+--------------------+--;--+------------+--)---------> '-iteration_variable-' '-expression-' >--{--+------------------+--+----------------+--increment_expression--+----------------+--}->< '-declaration_list-' '-statement_list-' '-statement_list-'
Countable while loop syntax >>-while--(--exit_condition--)----------------------------------> >--{--+------------------+--+----------------+--increment_expression--}->< '-declaration_list-' '-statement_list-'
Countable do while loop syntax >>-do--{--+------------------+--+----------------+--increment_expression--}--while--(--exit_condition--)->< '-declaration_list-' '-statement_list-'
The following definitions apply to the above syntax diagrams:
where expression is a loop-invariant signed integer expression. expression cannot reference external or static variables, pointers or pointer expressions, function calls, or variables that have their address taken.|--increment_variable--+-<=-+--expression-----------------------| +-<--+ +->=-+ '->--'