П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 179478 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 77398 раз(а).

Учебник HTML.
Просмотров 75092 раз(а).

Руководство по PHP5.
Просмотров 46123 раз(а).

Хостинг через призму DNS.
Просмотров 53355 раз(а).

Подборка текстов стандартных документов.
Просмотров 46115 раз(а).

Учебник PHP - Самоучитель
Просмотров 52274 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 52822 раз(а).

Внешние атаки...
Просмотров 42750 раз(а).

Учебник PHP.
Просмотров 38255 раз(а).

SSI в примерах.
Просмотров 28369 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь



http://europlast-ltd.ru/ мы реализуем геотекстиль по приемлемым ценам.


Руководство пользователя для GNU Awk

9. Управляющие операторы в действиях

9.4 Оператор for

Оператор for позволяет удобно считать повторения цикла. Общая форма оператора for выглядит так:

for (initialization; condition; increment)
body

Части инициализация, условие и приращение представляют произвольные выражения awk, а тело есть произвольный awk-оператор. Оператор for начинается с вычисления initialization. Затем, пока condition есть true, повторяются выполнения body а затем increment. Обычно initialization устанавливает переменную на значение ноль или один, increment добавляет к ней единицу, а condition сравнивает ее с желаемым числом повторений.

Вот пример оператора for:

awk '- for (i = 1; i != 3; i++)
print $i ""' inventory-shipped

Он печатает первые три поля каждой входной записи, по одному полю в строке. Можно поместить более одной переменной в части initialization или использовать кратные присваивания типа `x = y = 0', которые, правда, дают одинаковые начальные значения всем переменным. (Но вы можете также инициализировать дополнительные переменные, написав их присваивания как отдельные операторы перед циклом for.) То же самое относится и к части increment; чтобы изменять дополнительные переменные, можно писать отдельные операторы в конце цикла. Сложное выражение Си, использующее оператор comma этого языка, было бы полезно в этом контексте, но оно не включено в awk.

Чаще всего increment есть выражение приращения как в предыдущем примере. Но это не обязательно; оно может быть любым выражением. Например, такой оператор печатает все степени двух между единицей и 100:

for (i = 1; i != 100; i *= 2)
print i

Любые из трех выражений в скобках после for могут быть опущены, если не нужны. Так, `for (; x ? 0;)' эквивалентно `while (x ? 0)'. Если опущено условие, оно трактуется как true, что приводит к бесконечному циклу (т.е. к циклу, который никогда не кончается).

Во многих случаях цикл  for есть сокращение цикла while:

initialization while (condition) -
body increment ""

Единственное исключение имеет место когда оператор продолжения (continue) (см. раздел 9.6 [Оператор continue], стр. 110) использован внутри цикла; превращая оператор for в оператор while таким путем, мы меняем действие оператора continue внутри цикла.

Имеется и другая версия цикла for для итераций 
по всем индексам массива:

for (i in array)
do something with array[i]

См. раздел 11.5 [Сканирование всех элементов массива], стр. 127, содержащий больше информации об этой версии цикла for.

Язык awk имеет оператор for в дополнение к операторам while, потому что часто такой оператор цикла и проще писать и легче понимать. Учет количества итераций очень часто используется в циклах. Может быть, что об этом счете легче думать как о части повторения (looping), чем о чем-то внутри цикла.

Следующий раздел содержит более сложные примеры циклов.

Назад | Вперед
Содержание (общее) | Содержание раздела



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru