12.02.2014, 04:21
(
Last edited by Zume; 20/03/2015 at 01:58 PM.
)
INTRODUCCIУN.
Los operadores ternarios son parte de lo mismo que logra una condicional switch, if, etc .. Pero con caracterнsticas mбs importantes, la sintaxis bбsica para usar el operador es sencilla (es como un binario; verdadero o falso, sin embargo es posible crear mбs de dos clбusulas).
EJEMPLOS.
Es lo mismo que:
Si "Condiciуn" es verdadera, la segunda expresiуn se ejecuta, o sea remplazando (Si es verdadero), si es falso se ejecuta (Si es falso), si se preguntan las diferencias son sencillas.. "if" es una sentencia, "?" es una expresiуn, con esto no declaro que lo ternario es mejor, porque con el if se pueden usar varias clausulas mientras que en el ternario sуlo se pueden usar dos, їA quй me refieron con clausulas?. a esto:
EDIT: Un ejemplo de conversiуn bool a int con ternarios:
OTROS EJEMPLOS:
Por OTACON:
Ejemplo por Fothero:
ADICIONAL.
No sй realmente si es mбs rбpido el ternario que el la condiciуn if, aunque creerнa que sн porque presta atenciуn sуlo a dos clбusulas, aquн unas pruebas de velocidad.
Los operadores ternarios son parte de lo mismo que logra una condicional switch, if, etc .. Pero con caracterнsticas mбs importantes, la sintaxis bбsica para usar el operador es sencilla (es como un binario; verdadero o falso, sin embargo es posible crear mбs de dos clбusulas).
EJEMPLOS.
PHP Code:
new CommandExecuted[MAX_PLAYERS],
Variable2[MAX_PLAYERS];
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
if(CommandExecuted)
{
Variable2[playerid] = true;
}
else
{
Variable2[playerid] = false;
}
return 1;
}
return 0;
}
PHP Code:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
Variable2[playerid] = (CommandExecuted) ? (true) : (false);
return 1;
}
return 0;
}
PHP Code:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
if(Condicion == 1)
{
// SI SE CUMPLE EN 1
}
else if(Condicion == 2)
{
// SI SE CUMPLE EN 2
}
else
{
// SI NO SE CUMPLE NINGUNO
}
return 1;
}
return 0;
}
PHP Code:
new bool:a, b = a ? 1 : 0;
printf("%d", b);
Por OTACON:
PHP Code:
new data[100];
format(data,sizeof(data),"estado: %s",(GetPlayerSkin(playerid)==5) ? ("es gordo") : ("no es gordo"));
SendClientMessage(playerid,-1,data);
format(data,sizeof(data),"estado: %s",(GetPlayerState(playerid)==PLAYER_STATE_DRIVER) ? ("es conductor") : ("no es conductor"));
SendClientMessage(playerid,-1,data);
format(data,sizeof(data),"estado: %s",(GetPlayerWeapon(playerid)==30) ? ("tienes un AK-47") : ("no tienes un AK-47"));
SendClientMessage(playerid,-1,data);
PHP Code:
new variable;
((variable == 1)?(true):(variable == 2)?(true):(variable == 3)?(true):(false));
No sй realmente si es mбs rбpido el ternario que el la condiciуn if, aunque creerнa que sн porque presta atenciуn sуlo a dos clбusulas, aquн unas pruebas de velocidad.
Quote:
[04:20:19] if: 2135
[04:20:20] ternary operator: 1696 [04:22:12] if: 2210 [04:22:14] ternary operator: 1726 [04:23:58] if: 2174 [04:24:00] ternary operator: 1689 Cуdigo: PHP Code:
|