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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





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