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

Description: Уроки по скриптингу
Moderator: SJplayer

Y_Less M
Topic author, Ефрейтор
Ефрейтор
Avatar
Y_Less M
Topic author, Ефрейтор
Ефрейтор
Reputation: 2
Posts: 29
Joined: 16 Feb 2014
With us: 5 years 9 months

#1by Y_Less » 14 Nov 2019, 22:06

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

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

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

Code: Select all

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


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

Code: Select all

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

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

Code: Select all

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

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

Code: Select all

max = (> b) ? a : b

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

Code: Select all

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

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

Code: Select all

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

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

Code: Select all

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

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

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

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

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

Code: Select all

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

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

Code: Select all

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

! ! !


  • Similar Topics
    Replies
    Views
    Last post

Return to “Уроки”

Who is online (over the past 5 minutes)

Users browsing this forum: 1 guest