Общий вид for
заявления выглядит следующим образом:
for (init-statement; condition; expression)
statement
init-statement
используется для инициализации или присвоить начальное значение, который модифицирован в течение цикла. condition
служит для управления контуром. Пока condition
оценивает как истинный, выполняется statement
. expression
вычисляется для каждой итерации только если condition
верно
Назад к коду:
for (; cnt--; dp += sz)
init-statement
здесь нулевое утверждение, что ничего не делает. condition
- cnt--
который оценивает его значение как cnt
, а затем уменьшает 1
. Если cnt
отличен от нуля, condition
имеет значение true, если cnt
равно нулю, condition
является ложным.
init-statement выполняется только один раз до начала цикла. условие проверяется для каждой итерации, и выражение оценивается для каждой итерации, только если условие истинно. – Jack
@Jack. Или, скорее, условие проверяется перед каждым кругом в цикле и третьим выражением после каждого круга. Цикл for выполняется как: 'condition (stop if false) -> body loop -> 3rd expression'. – Lundin