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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





Руководство пользователя для 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