Руководство пользователя для GNU Awk
9. Управляющие операторы в действиях
9.6 Оператор continue
Оператор continue, подобно break, употребляется только внутри for, while и do циклов. Он означает игнорирование остатка тела цикла, побуждая немедленно перейти к началу цикла. В противоположность break, который заставляет совсем покинуть цикл. Оператор continue в цикле for предписывает awk пропустить остаток тела и продолжить работу с выражения increment в составе цикла. Это иллюстрирует следующая программа:
awk 'BEGIN -
for (x = 0; x != 20; x++) -
if (x == 5)
continue printf "%d ", x "" print "" ""'
Эта программа печатает все числа от 0 до 20, за исключением числа 5, для которого печать пропускается. Поскольку приращение `x++' не пропускается, x не останавливается на пяти. В отличие от этого примера с циклом for, по-другому ведет себя цикл с while в следующем примере:
awk 'BEGIN -
x = 0 while (x != 20) -
if (x == 5)
continue printf "%d ", x x++ "" print "" ""'
Эта программа зацикливается, когда х достигает 5.
Как сказано выше, оператор continue не имеет смысла, если стоит вне тела цикла. Однако, хотя это нигде не документировано, исторически реализации awk трактовали этот оператор вне цикла как оператор next (см. раздел 9.7 [Оператор next], стр. 111). Последние версии Unix awk не допускают больше это. gawk допускает такое употребление continue только при указании в командной строке параметра `--traditional' (см. раздел 14.1 [Параметры командной строки], стр. 161). В противном случае это трактуется как ошибка, поскольку стандарт POSIX требует, чтобы оператор continue использовался только внутри тела цикла d.c.).
Назад | Вперед
Содержание (общее) | Содержание раздела
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|