В теме 1 сообщение

Sleash
Завсегдатый

Всем привет!

Я хотел бы рассказать о такой незаменимой вещи как цикл for. мне кажется что тут ему уделили сало места, просто закинули в тему операторов и уделили ему +-5 строчек.

Поскольку циклы - непростая вещь я хотел бы посветить этому небольшой урок.

Итак, давайте рассмотрим пример самого цикла:

for(new i; i < MAX_VALUES; i++)
{
    // code ...
}

Теперь разберём каждое действие:

1. new i;

    Тут думаю всё понятно, создаётся переменная, так же можно её сразу прировнять к чему-то: for(new i = 10; ...)

2. i < MAX_VALUES

    Тут уже стоит условие выполнения, и пока оно будет верно - цикл будет выполняться, по сути каждый раз цикл проверяет данное условие

    Так же можно поставить другие операторы, но в основном используются < ИЛИ >

3. i++

    Тут уже выполняется действие каждый раз, когда условие верное.

Кстати говоря как только условие перестанет выполняться окончательно (условие перестанет быть верным), то дальше пойдёт ниже написанный код.

ВАЖНО: return закроет цикл досрочно

То есть:

for(new i = 0; i < 8; i++)
{
    print("%d",i));
}
// В этом случае нам выведет числа от 0-я до 8-и

for(new i = 0; i < 8; i++)
{
    print("%d",i));
    return true;
}
// А в этом выведет только 0, по-скольку return завершает цикл после первого его прохождения

Так же в цикле for можно заимствовать различные из языка C++:

continue - пропуск данного значения.

break - полный выход из цикло (почти идентично return)

Сейчас объясню:

for(new i = 0; i < 8; i++)
{
    if(i == 5continue// если i равна 5-и, то пропускаем
    printf("%d",i);
}
// Данный цикл выведет все числа от 0 до 8 КРОМЕ 5

for(new i = 0; i < 8; i++);
{
    if(i == 5break// если i равна 5-и, то завершеем
    printf("%d",i);
}
// А данный цикл выведет все числа от 0 до 4-х, так как на 5-и мы вышли из цикла

А теперь главное отличие break от return:

break - просто выкидывает из цикла.

return - выкидывает из цикла и возвращает значение.

К примеру вы пишите stock или public с циклом, который должен вернуть ДА или НЕТ, тот тут уже лучше использовать return true или false, в зависимости от условий и т.д.

И напоследок хочу сказать, что есть 2 вида использования цикла: инкремент и декремент.

Инкремент это перебор значений, последовательно их увеличивая, по сути все разобранные нами примеры сделаны при помощи инкремента.

Декремент же перебирает значения, последовательно их уменьшая, то есть при перечислении игроков проверка будет идти, допустим,  от 1000-го до 0-го ID. пример декремента:

for(new i = MAX_PLAYERS; i >= 0; --i)
{
    // code ...
}

На этом мне хотелось бы закончить свой урок, если кому помог - пожалуйста, но если же кому не понятно - я помогу подробнее разобраться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Lemonoas
      От Lemonoas
      Хочу сделать свою работу по моду чтобы работа работала, хочу сделать своими руками
    • Dekmveka
      От Dekmveka
      Здравствуйте, уважаемые пользователи форума PAWNO-RUS.
       
      В этой теме хочу поделиться видеоуроками, ориентированных на новичков, которые сейчас начинают только изучать pawn. 
      Хочу сказать сразу, я не профессиональный блогер с крутым оборудованием, поэтому если что за какие то погрешности в съемке заранее извиняюсь.
      Хотелось бы попросить не писать, что типа pawn и samp уже умер, неактуален, уроков и так полно и так далее и тому подобное. Я лишь просто занимаюсь своим увлечением и решил делиться знаниями с новичками.
      Далее на канале после плейлиста с основами планируется выложить плейлист по MySQL и максимально подробно всё рассказать о MySQL, будет старая добрая рубрика "Мод с нуля" (но на основе плагинов, стандартов и др. актуальных в 2025-2026 году). 
       
      Также хочу сказать, что есть также телеграмм канал. 
      На данный момент там есть ветка для общения, ветка "Инструменты" (там лежат архивы со всем нужным + есть навигационный пост, я просто поделил всё на категории и просто вставил ссылки на архивы которые туда же выложил. Можете зайти посмотреть если интересно). Также в телеграмм канале потом будут исходные файлы с плейлиста "Мод с нуля" и других плейлистах, пока что говорить подробно не буду что буду ещё выкладывать. 
       
      В общем, я даю ссылки, кому интересно, можете смотреть.
      [Часть 1]: Архитектура ядра SAMP || Основы программирования PAWN/PAWNO  -  *кликабельно*
      [Часть 2]: База мода, переменные, format() || Основы программирования PAWN/PAWNO  -  *кликабельно*
      Telegram канал  -  *кликабельно*
       
      Желаю всем приятного просмотра, а также успехов в обучении 
    • Antoxa39
      От Antoxa39
      Здарова бандиты. 
      Вообщем, в этом уроке я расскажу и покажу как подключить Базу Данных к MySQL.
      Не регистрацию,и не в готовом моде где просто пользователя пароль хост и т.д меняете.
      А подключение с нуля.
       
      1.Нам понадобится MySQL.  Я использую R39-6. Скачать 
      2.Приступаем к подготовительному этапу.
      Заходим в Pawn и подключаем MySQL чуть ниже инклюда a_samp. #include <a_mysql>
      Должно быть так.
      После этого отчищаем мод от хлама. Должно получится вот так: жмЫкс
      3.Подключение
      Дальше нам требуется создать переменную,эта переменная будет хранить ИД подключения. в MySQL R39 создаем простую переменную.
      new dbHandle;  В MySQL R41 создаем так:
       new MySQL:dbHandle;  
      теперь создаем Константы
      #define Host "127.0.0.1" #define User "root" // это если вы используете Denwer. Если хостинг указываете другого пользователя. #define DataBase "urok" #define Password_SQL ""//Если вы на хостинге ставите пароль,для Denwer пароль не требуется, чуть позже скажу как его установить Все, теперь переходим в public OnGameModeInit()
      public OnGameModeInit() {     dbHandle = mysql_connect(Host,User,DataBase,Password_SQL); // приравниваем нашу переменную с ИД подключением к коннекту к базе данных. Извиняюсь если коряво обьяснил. Это для R39     return 1; } Для R41
      public OnGameModeInit() {     dbHandle = mysql_connect(Host,User,Password_SQL,DataBase);// В R41 поменялись местами Пароль и База     return 1; } Если сделаем чтобы при подключении к базе выводилось сообщение о том,подключилось или нет. Я сделаю это без switch. Чтобы сильно не загружать смотрящих этот урок.
      Делаем все там же в public OnGameModeInit()
      public OnGameModeInit() {     dbHandle = mysql_connect(Host,User,DataBase,Password_SQL);     if(mysql_errno())     {         printf("Подключение к базе данных %s не удалось.",DataBase); // %s означает строку. То есть будет выводить название базы данных которое указано в #define DataBase     }     else     {         printf("Подключение к базе данных %s успешно",DataBase);     }     return 1; } Все, с этим закончили. Остался последний этап, это отключение базы данных когда мод выключается.
      Идем в паблик OnGameModeExit()
      public OnGameModeExit() {     mysql_close(dbHandle);     return 1; } Все. База данных подключена.
      Чтобы скачать Denwer жмите сюды: плямп
      Для установки можете перейти по этой ссылке: УСТАНОВКА
    • sinvays
      От sinvays
      Продаётся проект Criminal RolePlay с 8-летней историей.

      Проект заморожен и не используется длительное время.
      Потратил на него около 250.000 рублей, продаю за приемлимую цену.

      В комплекте:
      Полноценный игровой мод Мобильный лаунчер с Figma-дизайном Кэш клиентской части Все версии оформления проекта Все группы проекта Criminal RolePlay Шаблоны всех версий сайта, включая ранее не выпущенный шаблон Модуль автодоната YooMoney Помощь с установкой игрового мода на хостинг Цена:
      49 900₽ — за весь комплект.
      Возможен торг при адекватных предложениях.

      Важное:
      Проект продаётся в одни руки. Если в течение месяца не найдётся покупатель, будет рассмотрена продажа по частям.
      Связаться: https://vk.com/rosetta