Тернарный оператор

Описание: Уроки по скриптингу
Модератор: SJplayer

Y_Less M
Автор темы, Мл. сержант
Мл. сержант
Аватара
Y_Less M
Автор темы, Мл. сержант
Мл. сержант
Сообщения: 33
Зарегистрирован: 16 февраля 2014
С нами: 10 лет 1 месяц

#1 Y_Less » 14 ноября 2019, 22:06

Тернарный оператор - если говорить простым языком то это почьти тоже что и конструкции if..then..else. Но тернарный оператор применяется в виде одно-строчного решения ваших задач.
Как выглядит тернарный оператор?

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

Сравнить это можно с той же конструкцией if..then..else:

Код: Выделить всё

if (логическое выражение) then выражение 1 else выражение 2


Но вся суть тернарного оператора в том, что он может быть использован там где "if" не может присутствовать.
Например, простое применение:

Код: Выделить всё

new x, y;
= (== 0) ? 0 : 1

Здесь мы видим, условие - если y равно 0, тогда присвоим x число 0, иначе число 1.
По логике это тоже что:

Код: Выделить всё

new x, y;
if(
== 0) x = 0; else x = 1

А теперь приведу несколько примеров применения данного оператора:

Код: Выделить всё

max = (> b) ? a : b

Получим макс. значение двух переменных.

Код: Выделить всё

SetPlayerColor(playerid, (PlayerInfo[playerid][pAdmin] > 0) ? COLOR_RED : COLOR_WHITE); 

Здесь мы в одной строке написали, что игроку будет присвоен красный цвет если он админ выше 0 го уровня, иначе игрок получит белый цвет.

Код: Выделить всё

SetPlayerHealth(playerid, (PlayerInfo[playerid][Vip]) ? 100.0 : 50.0); 

Даем игроку 100HP если он VIP, иначе 50.0.

Код: Выделить всё

ini_openFile((isLogged[playerid]) ? ("file1.ini") : ("file2.ini")); 

Если игрок залогинился откроем файл1 иначе файл2.

И подобных примеров множество, применять можно во многих задачах. Надеюсь вы найдете этому применение :)

Пример использования:

Например, на конструкции if/else одно выражение может выглядеть вот так:

Код: Выделить всё

if( z > y )
{
  x = 5; 
}
else
{
  x = 3;

А вот так это будет выглядеть на тернарном операторе:

Код: Выделить всё

= ( z > y ) ? 5 : 3
Spam Machine


Вернуться в «Уроки»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 5 гостей