[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Форум » Уроки SourceMod (SourcePawn) Скриптинга » Работа с циклами for и while (Описание, примеры Взято с world-source.ru)
Работа с циклами for и while
rootДата: Воскресенье, 03.02.2013, 01:06 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 561
Статус: Offline
Циклы 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);  
      }  
}

Результат: 

Код
x = 1  
x = 2  
x = 3

Команда 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("Это и всё что ниже - не будет выполнено");  
}

Результат: 

Цитата
x = 1 
x = 2

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.
 
Форум » Форум » Уроки SourceMod (SourcePawn) Скриптинга » Работа с циклами for и while (Описание, примеры Взято с world-source.ru)
  • Страница 1 из 1
  • 1
Поиск: