На помощь придут циклы. Цикл - это специальная конструкция языка, позволяющая запрограммировать многократное выполнение определённого блока команд. Каждый "проход" цикла называется итерацией. В языке Pawn существует три вида циклов - циклы for, while, do...while. В данном уроке мы познакомимся со всеми его разновидностями.
Самый просто цикл можно организовать с помощью оператора while. Он выглядит так:
while(условие)
{
// этот код выполняется повторно, пока условие остается истинным (тело цикла)
}
Сначала проверяется условие. Условием могут быть выражения вида var > 10, var1 == var2 или любые другие. Если условие истинно выполняется инструкция в скобках. Дойдя до закрывающей скобки, компилятор передает управление в начало цикла, и все повторяется вновь. Таким образом, смысл оператора while, в том, что программный код в скобках повторяется до тех пор, пока не нарушится условие.
Реже используется другая версия цикла while, известная как do...while. Работает как обычный, но условие проверяется в конце, после выполнения тела цикла.
do
{
// тело цикла
} while (условие);
Поскольку условие выполняется в конце, тело оператора do...while выполняется хотя бы один раз.
Еще одной, наиболее распространенной разновидностью циклов является цикл for
Он имеет следующий вид:
for (объявление переменной, условие, увеличение)
}
// тело цикла
}
Выполнения цикла for начинается с объявления переменной. Затем проверяется условие. Подобно while, цикл for выполняется до тех пор, пока условие не станет ложным. После того как выполнится код тела цикла, управление получит следующий параметр for - увеличение
Пример:
if(strcmp("/cc", cmdtext, true, 10) == 0)
{
if(IsPlayerAdmin(playerid))
{
for(new i; i<101; i++)
SendClientMessageToAll(0x00000000,"");//тело цикла
return 1;
}
}
Выше показан пример команды, которая очищает чат. Разберем её
new i - объявляем переменную.
i<101 - условие цикла.
i++ - увеличение переменной. Происходит после каждой проверки на истинность условия.
Его можно заменить эквивалентным ему циклом while:
while (условие)
{
{
//... тело цикла
}
увеличение;
}
Пример:
if (strcmp("/cc", cmdtext, true, 10) == 0)
{
if(IsPlayerAdmin(playerid))
{ new i;
while (i < 101)
SendClientMessageToAll(0x00000000,"");
i++;
return 1;
}
}
Команда аналогична предыдущей, но теперь выполнена с помощью оператора while.
new i - объявляем переменную.
while (i < 101) - условие.
SendClientMessageToAll(0x00000000,""); - тело цикла. Пока условие истинно функция повторяется.
i++ - увеличение. С каждым повтором функции переменная увеличивается на один пункт.
Заключение
Цикл является основой, поэтому очень важно освоить этот материал для формирования базовых знаний о языке Pawn, которые положительно повлияют на ваше дальнейшее развитие. Теперь вы знаете, что такое цикл, его разновидности и как им пользоваться.
Вот и все) Надеюсь мой урок был понятен всем
Автор: Я
Сообщение отредактировал Mike: 19 января 2012 - 14:09
Вход
Регистрация
Помощь















