Enrique_Black
Специалист
Доброго времени суток уважаемые пользователи данного портала.
Как вы поняли из названия данный темы, речь пойдет о "тернарных условных операциях".
Теперь немного информации о "Тернарной условной операции"
"Тернарная условная" - что же это, в нашем случае(в языке pawn), это аналог операторам if/else. "Тернарная условная операция" используется во многих ЯП(языках программирования), некоторые из них: С, С++, Java, PHP (это не весь список). Данная операция возвращает значение(второй и третий операнд) в зависимости от нашего логического выражения(первого операнда). Прочитав не мало статей, как я понял во всех ЯП(языках программирования) в которых можно использовать данную операцию она определяеться следующим способом."
Операнд 1 ? операнд 2 : операнд 3
или говоря на русском языке
логическое выражение ? выражение 1 : выражение 2
А теперь немного о вычисление алгоритма данной операции:
Вычисляется логическое выражение.
Если логическое выражение истинно, то вычисляется значение выражения выражение 1, в противном случае — значение выражения выражение 2.
Вычисленное значение возвращается.
Нужно обратить внимание, что вычисляется только одно из выражений: выражение 1 или выражение 2. Это сделано для оптимизации и, в некотором смысле, соответствует принципу ленивых вычислений.
Ну а теперь несколько примеров использовании данной операции в pawn.
Пример первый.
Второй пример.
А также скажу, еще пару слов о операциях данного вида.
Тернарная условная операция быстрее чем if/else, по мимо всего этого ваш код выглядит более читабельным.
Материал для статьи собрал и подготовил: Enrique_Black
Автор статьи: 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
При копирование статьи на другие ресурсы указывайте автора.
Всем спасибо за внимание. Если вам понравилась и пригодилась данная информация нажмите "Спасибо"
