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

Last updated