000104. Блочные конструкции. Условия

Блочные конструкции. Условия|Всем привет! Мы продолжаем изучать C#. А точнее не сам C#, а скриптинг GTA 4 с помощью этого языка програмированния.|wmysterio|wmysterio||||Сегодня мы рассмотрим блочную конструкцию, являющейся условием. Как уже звучало ранее, блочные конструкции содержат код внутри фигурных скобок { и }. К таким блочным конструкциям относятся условия. Синтаксис написания прост:

cs
if ( УСЛОВИЯ ) {
 // действия
}

Само условие в основном содержит операторы отношения выражений. Также сюда можно отнести функции, возвращающие тип "bool". Вот самый простой пример:

C#Аналог в Sanny Builder

```

cs using System; using GTA;

namespace TestScript {

public class Thread : Script {

public Thread() {

int a = 0; if ( a == 0 ) { // действия }

}

}

}

</td><td>

{$Cleo} 0000:

thread 'Thread'

0@ = 0 if 0@ == 0 then // действия end

0A93: end_custom_thread

</td></tr>
</tbody></table>

Это одиночное условие конструкции **if...then...end**. Чтобы организовать код **jf @Label1** с SannyBuilder-а, нужно использовать следующий код:

<table class="table table-bordered"><tbody>
<tr><th>C#</th><th>Аналог в Sanny Builder</th></tr>
<tr><td>

cs using System; using GTA;

namespace TestScript { public class Thread : Script {

public Thread() { int a = 0;

Label1: Wait(0);

if ( a != 0 ) { goto Label1; }

} } }

</td><td>

{$Cleo} 0000:

thread 'Thread' 0@ = 0

:Label1 wait 0

if 0@ == 0 jf @Label1

0A93: end_custom_thread

</td></tr>
</tbody></table>

Как и SB, существуют ещё несколько типов условий. Одной из них есть конструкция **if...then...else...end**. В C# она имеет следующий вид:

<table class="table table-bordered"><tbody>
<tr><th>C#</th><th>Аналог в Sanny Builder</th></tr>
<tr><td>

cs int a = 5;

if ( a == 0 ) { a += 1; } else { a += 10; }

</td><td>

0@ = 5

if 0@ == 0 then 0@ += 1 else 0@ += 10 end

</td></tr>
</tbody></table>

Хочу ещё рассказать о "типах" условий. Как вы помните, в Санни Билдер существуют проверки на истину нескольких выражений ( **or** и **and** ). C# предоставляет также такую возможность. Синтаксис написания таков:

<table class="table table-bordered"><tbody>
<tr><th>Тип</th><th>C#</th><th>Аналог в SannyBuilder</th></tr>
<tr><td>or</td><td>

cs if ( a == 0 || a == 1 || a == 3) { a += 1; }

</td><td>

if OR 0@ == 0 0@ == 1 0@ == 3 then 0@ += 1 end

</td></tr>
<tr><td>and</td><td>

cs if ( a == 0 && a == 1 && a == 3) { a += 1; }

</td><td>

if AND 0@ == 0 0@ == 1 0@ == 3 then 0@ += 1 end

</td></tr>
</tbody></table>

Главные отличия Вы заметили. Плюсы Санни Билдер в том, что мы перечисляем все условия, написав тип "or ( and )" один раз, в то время как в c# нам постоянно нужно вводить неудобные символы **&&** или **\|\|** между условиями. Плюс шарпа в том, что он не ограничен в количестве самих условий. Можем написать хоть сто условий :) Кроме этого, мы можем комбинировать их, в зависимости от ситуации. К тому-же код c# не такой громоздкий, как со сравниваемым с ним SannyBuilder. Мы, конечно, могли написать и так:

cs if ( a == 0 && a == 1 && a == 3 ) { a += 1; }



Никакой разницы не будет. Компилятор поймёт это без проблем! Это удобно, когда есть куча условий, но их видимость в одной строке ограничивается. Какой вариант лучше, такой и используйте :)

На этом об условиях всё. Галопом прошлись по ним. Принцип работы остался прежним. Если уж совсем напряг, то почитайте более подробные статьи в интеренете. Я уже хочу побыстрее перейти к обычному режиму уроков. А учить весь C# нам нет необходимости :)|670|1|0||blochnye_konstrukcii_uslovija|1511774783

Last updated