Циклы for, while
Код
for (переменные; условие; команды)
{
// код
}
Сначала проверяется условие, если оно проходит проверку (true), то выполняется код, после чего выполняются команды, и снова проверяется условие и т.д. Т.е. код будет выполняться до тех пор, пока условие проходит проверку (true). Нужно быть осторожным, чтобы цикл не был бесконечным, так как сервер может упасть. Т.е. если вы запустили цикл, нужно быть уверенным, что он прекратится.
В каждом цикле можно использовать и такие команды: break, continue, return
Пример 1:
Код
#include <sourcemod>
public OnPluginStart()
{
for (new x = 1; x < 6; x++) PrintToServer("x = %d", x);
}
Результат:
Цитата
x = 1
x = 2
x = 3
x = 4
x = 5
Созданная переменная x доступна только в пределах цикла.
Пример 2:
Код
#include <sourcemod>
public OnPluginStart()
{
for (new x = 5, y = 0; x > y; x--) PrintToServer("x = %d", x);
}
Результат:
Цитата
x = 5
x = 4
x = 3
x = 2
x = 1
Пример 3:
Код
public OnPluginStart()
{
for (new x = 1; x < 5; x++)
{
if (x > 3) break;
PrintToServer("x = %d", x);
}
}
Результат:
Команда break обрывает (завершает) цикл и игнорирует код ниже (который внутри цикла).
Пример 4:
Код
public OnPluginStart()
{
for (new x = 1; x < 6; x++)
{
if (x == 3) continue;
PrintToServer("x = %d", x);
}
}
Результат:
Цитата
x = 1
x = 2
x = 4
x = 5
continue игнорирует код ниже и переходит к следующему шагу (выполнение команд и проверка условия).
Пример 5:
Код
public OnPluginStart()
{
for (new x = 1; x < 6; x++)
{
if (x > 2) return;
PrintToServer("x = %d", x);
}
PrintToServer("Это и всё что ниже - не будет выполнено");
}
Результат:
return завершает цикл и саму функцию, в которой он используется.
Пример 6:
Код
public OnPluginStart()
{
new x = 6;
while (x > 1)
{
x -= 1;
PrintToServer("x = %d", x);
}
}
Результат:
Цитата
x = 5
x = 4
x = 3
x = 2
x = 1
Цикл while выполняется, пока верно условие. Его можно использовать и так:
Код
public OnPluginStart()
{
new x = 6;
do
{
x -= 1;
PrintToServer("x = %d", x);
}
while (x > 1);
}
Смысл тот же, но здесь сначала будет выполнен код внутри do.