Пример:

$var =1;

if ($var == 1)

{ print $var,"\n";

}

Результат: 1

if (EXPR) BLOCKelseBLOCK2 – Если EXPR=true выполняется BLOCK иначе BLOCK2.

Пример:

$var =2;

if ($var == 1)

{ print «\$var = 1\n»;

}

else

{ print «\$var не равно 1\n»;

}

Результат: $var не равно 1

if (EXPR1) BLOCK1 elsif (EXPR2) BLOCK2 ... else BLOCK – Если EXPR1=true выполняется BLOCK1 иначе если EXPR2=true выполняется BLOCK2 иначе ... иначе BLOCK.

Пример:

$var = 1;

if ($var == 0)

{ print «\$var = 0\n»;

}

elsif ($var == 1)

{ print «\$var = 1\n»;

}

else

{ print «Не известное \$var\n»;

}

Результат: $var = 1

Цикл while выполняет BLOCK до тех пор пока EXPR = true. Метка LABEL не обязательна и состоит из идентификатора завершающегося символом ':'. Метка необходима при использовании внутри блока цикла управляющих операторов next, last и redo. Если метка все же отсутсвует то эти операторы ссылаются к началу ближайшего цикла.

Блок после continue выполняется всегда перед тем как вычисляется логическое выражение EXPR. Это подобно EXPR3 в предлжении for поэтому в этом блоке удобно изменять счетчики и флаги цикла даже если применяестя оператор next.

Операторы управления циклом.

next – подобен continue в С. Переходит к началу текущего цикла т.е. повторяет итерацию.

Пример:

M1:

while ($i < 6)

{

++$i; # Увеличиваем счетчик на 1

next M1 if $i < 3; # Переходим в начало если $i < 3

++$i; # иначе увеличиваем счетчик еще раз на 1

}

continue

{

print "$i "; # Печатаем $i

}

Результат: 1 2 4 6

last – подобен оператору break в языке С. Немедленно прерывает цикл. Блок continue пропускается.

Пример:

M1:

while ($i < 6)

{

++$i; # Увеличиваем счетчик на 1

last M1 if $i > 3; # Выход из цикла если $i > 3

++$i; # иначе увеличиваем счетчик еще раз на 1

}

continue {

print "$i "; # Печатаем $i

}

Результат: 2 4

redo – начать новый цикл не вычисляя EXPR и не выполняя continue блок.

Пример:

M1:

while ($i < 6)

{

++$i; # Увеличиваем счетчик на 1

redo M1 if $i == 3; # Далее пропустить для $i = 3

++$i; # иначе увеличиваем счетчик еще раз на 1

}

continue {

print "$i "; # Печатаем $i

}

Результат: 2 5 7

Цикл for.

LABEL for (EXPR1; EXPR2; EXPR3) BLOCK


Логин
Пароль
Запомнить меня