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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





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

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

9.5 Оператор break

Оператор прерывания break выводит из циклов for, while или do, в которых он находится. Следующий пример находит наименьший делитель любого целого и отмечает простые числа:

awk '# находит наименьший делитель для num
- num = $1
for (div = 2; div*div != num; div++)
if (num % div == 0)
break if (num % div == 0)
printf "Smallest divisor of %d is %d"n", num, div else
printf "%d is prime"n", num ""'

Если в первом операторе if остаток равен нулю, awk немедленно прерывает цикл for. Это означает переход к оператору, непосредственно следующему за циклом и продолжение обработки. (Это совершенно не похоже на оператор exit, который прекращает выполнение программы awk. См. раздел 9.9 [Оператор exit], стр. 112.)

Вот другой пример программы, эквивалентной предыдущей. Он иллюстрирует, как condition цикла for или while можно заменить на оператор break внутри оператора if:

awk '# находит наименьший делитель для num

- num = $1
for (div = 2; ; div++) -
if (num % div == 0) -
printf "Smallest divisor of %d is %d"n", num, div break "" if (div*div ? num) -
printf "%d is prime"n", num break "" "" ""'

Выше уже говорилось, что оператор break не имеет смысла, если расположен вне тела цикла. Однако, хотя это нигде не документировано, по традиции реализации awk рассматривали оператор break вне цикла как оператор next (см. раздел 9.7 [оператор next], стр. 111). Последние версии Unix awk больше не разрешают такое употребление. gawk поддержит такое употребление, если в командной строке будет указан параметр `--traditional' (см. раздел 14.1 [Параметры командной строки], стр. 161).

В противном случае оно будет рассматриваться как синтаксическая ошибка, поскольку стандарт POSIX указывает, что break может использоваться только внутри тела цикла (d.c.).

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



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





Copyright © 2005-2016 Project.Net.Ru