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 | |