Блочные конструкции. Условия|Всем привет! Мы продолжаем изучать C#. А точнее не сам C#, а скриптинг GTA 4 с помощью этого языка програмированния.|wmysterio|wmysterio||||Сегодня мы рассмотрим блочную конструкцию, являющейся условием. Как уже звучало ранее, блочные конструкции содержат код внутри фигурных скобок { и }. К таким блочным конструкциям относятся условия. Синтаксис написания прост:
cs
if ( УСЛОВИЯ ) {
// действия
}
Само условие в основном содержит операторы отношения выражений. Также сюда можно отнести функции, возвращающие тип "bool". Вот самый простой пример:
</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