Уроки моддинга
Основной раздел
Search
K
Links

000105. Блочные конструкции. Циклы

Блочные конструкции. Циклы|Начинаем седьмой урок по скриптингу GTA 4. Циклы мы уже проходили с Вами в обучении Sanny Builder, поэтому кратко пробежимся по основным отличиям.|wmysterio|wmysterio||||Начнём с самого противного для новичков цикла - while. Суть цикла - многоразовое повторение кода внутри блока, кока выполняется условие. Единственным отличием от СанниБилдер в том, что количество условий может быть любое. Синтаксис написания следующий:
cs
int a = 0;
while (100 > a) {
a++;
}
Второй вид цикла - do...while. Так называемый цикл с постусловием. Сначала делается код в блоке, а затем проверяется условие. Синтаксис написания таков:
c#
Аналог в Sanny Builder
```
cs int a = 0;
do { a++; } while (100 > a);
</td><td>
0@ = 0
repeat 0@ += 1 wait 0 until 0@ > 99
</td></tr>
</tbody></table>
Если для продолжения цикла **repeat** было нужно, что бы условие было ложным, то **do...while** наоборот - должно возвращать истину.
Рассмотрим ещё один вид циклов - **for**. Не знаю почему, но он является самый любимым циклом для начинающих программистов ( как показала статистика ). Синтаксис написания таков:
<table class="table table-bordered"><tbody>
<tr><th>c#</th><th>Аналог в Sanny Builder</th></tr>
<tr><td>
cs int a, b = 0;
for (a = 0; a < 100; a++) { b += 2; }
</td><td>
1@ = 0
for 0@ = 0 to 100 step 1 1@ += 2 end
</td></tr>
</tbody></table>
Особых отличий нет, так что запомнить синтаксис не составит труда.
Есть так-же ещё один полезный цикл - **foreach**, аналога которого в SannyBuilder нет. Переводится как "для каждого". Этот цикл, как правило, используют для обхода элементов коллекций. О них я расскажу когда придёт время, там же и более детально изучим этот цикл.
Инструкции **break** и **continue** так же есть в c#. Как вы помните ( или тем, кто не помнит ), инструкция **break** немедленно прерывает цикл, а **continue** начинает цикл сначала. Простой пример:
<table class="table table-bordered"><tbody>
<tr><th>c#</th><th>Аналог в Sanny Builder</th></tr>
<tr><td>
cs nt b = 0;
for (int a = 0; a < 100; a++) { b += 2;
if ( b > 17 ) { break; } else { continue; }
}
</td><td>
1@ = 0
for 0@ = 0 to 100 step 1 1@ += 2 if 1@ > 17 then break else continue end end
</td></tr>
</tbody></table>
На этом всё, тестируйте, экспериментируйте и задавайте вопросы!|554|1|0||blochnye_konstrukcii_cikly|1511983477