Приглашаем посетить
Кюхельбекер (kyuhelbeker.lit-info.ru)

Циклы и ветвления

Циклы и ветвления

Perl поддерживает операторы циклов for , while и do с небольшими отличиями от их реализации в языке С. Существенным отличием служит то, что Perl требует использования инструкций    блоками, заключенными в фигурные скобки. Кроме того, как вы познакомитесь , далее, Perl расширяет конструкцию цикла, что6ы обес­печить ее некоторые новые формы. В следующих примерах циклы for , while и do работают аналогичным образом на языках С и Perl :

f or($i = 0; $i< 100;$i++)

   {

printf("%d\n", $i) ;

               }

while ($i > 0)

   {

            printf("%d\n", $i-);

   }

do {

printf("%d\n", $i++);

      } while ($ i < 0);

Конструкция циклов на языке С отлична от конструкции на языке Perl еще и в том, что Perl не содержит оператора break , а оператор continue выполняет совершенно иную функцию. К счастью, Perl обеспечивает некоторые новые, более гиб­кие и более интуитивно понятные конструкции:

·         last     выход из цикла (как оператор С break )

·         next    начать новую итерацию (как оператор С continue )

·         redo    повторить текущую итерацию

Для понимания конструкций циклов на языке Perl , необходимо разобраться с ис­пользованием блока continue . Рассмотрим следующий цикл while , который содер­жит блок continue :

            $i = 100;

while ($i > 0)

   {

print $i;

    } continue {$i-}

Вы можете представлять себе блок continue как третье выражение в цикле for , ко­торое выполняется на каждой итерации. Аналогичным образом Perl выполняет блок continue в конце каждой итерации. Однако, как вы узнаете далее, блок con ­ tinue обеспечивает скрипту более полный контроль над процессом, чем обеспечивает цикл for . Когда цикл на языке Perl использует оператор next , блок continue все равно выполняется, если только он существует. Однако если цикл использует опе­ратор redo , блок continue не исполняется.

Назад | Оглавление | Далее