Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Урок Тернарная условная операция

Статус
В этой теме нельзя размещать новые ответы.

Enrique_Black

Специалист
Доброго времени суток уважаемые пользователи данного портала.
Как вы поняли из названия данный темы, речь пойдет о "тернарных условных операциях".
Теперь немного информации о "Тернарной условной операции"


"Тернарная условная" - что же это, в нашем случае(в языке pawn), это аналог операторам if/else. "Тернарная условная операция" используется во многих ЯП(языках программирования), некоторые из них: С, С++, Java, PHP (это не весь список). Данная операция возвращает значение(второй и третий операнд) в зависимости от нашего логического выражения(первого операнда). Прочитав не мало статей, как я понял во всех ЯП(языках программирования) в которых можно использовать данную операцию она определяеться следующим способом."


Операнд 1 ? операнд 2 : операнд 3
или говоря на русском языке
логическое выражение ? выражение 1 : выражение 2



А теперь немного о вычисление алгоритма данной операции:

Вычисляется логическое выражение.
Если логическое выражение истинно, то вычисляется значение выражения выражение 1, в противном случае — значение выражения выражение 2.
Вычисленное значение возвращается.
Нужно обратить внимание, что вычисляется только одно из выражений: выражение 1 или выражение 2. Это сделано для оптимизации и, в некотором смысле, соответствует принципу ленивых вычислений.



Ну а теперь несколько примеров использовании данной операции в pawn.


Пример первый.
PHP:
new integer = (10 < 20) ? 10 : 20;

// Если '10' будет меньше чем '20' - то функция получит значение '10', иначе '20'.
// Если использовать операторы if/else то это будет выглядить следующим способом.

if ( 10 < 20 ) integer = 10;
else integer = 20;

Второй пример.

PHP:
//Например мы пишем систему домов и нам надо вывести в чат состояние дверей.
new bool:homelock = true;//переменная якобы наши двери открыты.
format(string_playerid[playerid],1536,"%s",( homelock == true ) ? ("Открыт") : ("Закрыт"));//заносим нашу тернарную операцию и тут же заносим ее в массив(для вывода в чат)
SendClientMessage(playerid,-1,string_playerid[playerid]);//выводим в чат наш массив.
string_playerid[playerid][0] = 0;//обнуляем наш массив(я использую глобальный стринг)

А также скажу, еще пару слов о операциях данного вида.
Тернарная условная операция быстрее чем if/else, по мимо всего этого ваш код выглядит более читабельным.




Материал для статьи собрал и подготовил: Enrique_Black
Автор статьи: Enrique_Black
При копирование статьи на другие ресурсы указывайте автора.

Всем спасибо за внимание. Если вам понравилась и пригодилась данная информация нажмите "Спасибо"










​
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу