Главная | Комментарии | О проекте
Чтение RSS
Суперсайт
Главная Контакты Карта сайта Добавить в избранное
  • Кто OnLine

    Всего на сайте: 7
    Гостей: 1
    Пользователи: - отсутствуют
    Роботы: robot Bot, crawl Bot, robot Bot, crawl Bot, Yahoo Bot, Yandex Bot

    Опрос пользователей

    Для какого мода Вы пишите плагины?

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: HoLLyWooD Дата: 9-12-2011, 21:08 Просмотров: 12202

    Урок 5. Тернарная условная операция ( аналог if-else )

    Тернарная условная операция (обычно записывается как ?:) — во многих языках программирования операция, возвращающая свой второй или третий операнд в зависимости от значения логического выражения, заданного первым операндом.

    Обычно тернарная условная операция ассоциируется с операцией ?:, используемой в си-подобных языках программирования.

    Безотносительно определённого языка программирования, тернарную операцию можно определить так:

    логическое выражение ? выражение 1 : выражение 2


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

    Некоторые примеры использования в PAWN:

    Пример 1:

    new minimum = (a < b) ? a : b;
    // Если 'a' будет меньше чем 'b' - то функция получит значение 'a', иначе 'b'.
    // Аналогично это можно было записать как:
    // if ( a < b )
    //      minimum = a;
    // else
    //      minimum = b;


    Пример 2:

    new bool:mode = true;
    client_print(0, print_chat, ( mode == true ) ? "MODE=TRUE" : "MODE=FALSE");
    // Тут уже сами разберетесь с аналогом. Описывать лень :)


    Многие из вас пользовались тернарными операциями давно - не зная с чем имеют дело.

    Добавлю от себя: тернарные операции выполняются быстрей чем if/else, а так же делают ваш код более читабельным.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    Урок 5. Тернарная условная операция ( аналог if-else )
    Алексей

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Спасибо, давно хотел в свой код вставить, но не понимал как это!

    p.s: можно убрать код безопасности для пользователей и проверку сообщения?
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    Включаем логику:
    Если бы можно было бы убрать - убрали бы.
    --------------------
    Monstr™

    29.09.2011
    ICQ: 631967458
    Публикаций: 12
    Комментариев: 22
    Репутация: -  0  +

    tavot
    'MODE=TRUE'

    ==>
    "MODE=TRUE"

    не?
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    Ну да.. подправил.
    --------------------
    HoLLyWooD

    26.09.2011
    ICQ: 8272341
    Публикаций: 3
    Комментариев: 10
    Репутация: -  0  +

    А чем вам не понравились одинарные скобки?
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    Лично у меня, компилятор воспринимает только двойные кавычки :)
    --------------------
    droper

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Двойные кавычки - строка, не важно какой она длины, а одинарные - символ.
    new a[] = "string";
    new b[] = "o";
    new c = 'a'
    new d[] = { 'h', 'e', 'l', 'l', 'o', EOS };
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    Вот и ответ, спасибо )
    --------------------
    HoLLyWooD

    26.09.2011
    ICQ: 8272341
    Публикаций: 3
    Комментариев: 10
    Репутация: -  0  +

    После РНР никогда в павне не обращал внимание на это :)
    учту

    Информация

    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Наверх

Реклама