Cuando tenemos la necesidad de tomar una decisión basada alguna condición utilizamos el condicional if, pero algunas veces debemos comprobar varios datos para saber que hacer. Es aquí cuando entran los condicionales múltiples, es este tip veremos como utilizarlos.
Los condicionales son:
AND (&&)
OR (||)
NOT (!)
En antiguas versiones de Actionscript era posible utilizar estos operadores escribiéndolos como palabra pero en AS3 sólo es posible utilizarlos escribiendo su signo.
AND (&&)
Este operador ejecuta el código sólo si las dos condiciones son verdaderas.
Código :
if((1 == 1) && (1 < 2)) //Si uno es igual a uno y uno es menor que dos { trace("True"); //True }
OR (||)
Ejecuta el código si alguna de las condiciones es verdadera.
Código :
if((1 == 4) || (1 < 2)) //Si uno es igual a cuatro o uno es menor que dos { trace("True"); //True, la condicion de la derecha es verdadera }
NOT (!)
Ejecuta el código si la condición es contraria.
Código :
var lloviendo:Boolean = false;
if(!(lloviendo == true)) { trace("No está lloviendo"); //Si no se hubiera colocado el [b]![/b], no se ejecutaría el trace }
Con estos condicionales podremos estructurar mejor nuestro código y reducir la aparición de if innecesarios.
No me ha quedado claro... qué diferencia hay entonces entre estos dos ifs:
Código :
var num1 = 5; var num2 = 3; if ((num1 == num2) == false) { trace("No son iguales"); //Trace: No son iguales }
if (!(num1 == num2)) { trace("No son iguales"); //Trace: No son iguales }
Ambos hacen lo mismo... pero tienen alguna utilidad distinta el alguna ocasión ?
Saludos Por:infernalpr
infernalpr :
No me ha quedado claro... qué diferencia hay entonces entre estos dos ifs:
Código :
var num1 = 5; var num2 = 3; if ((num1 == num2) == false) { trace("No son iguales"); //Trace: No son iguales }
if (!(num1 == num2)) { trace("No son iguales"); //Trace: No son iguales }
Ambos hacen lo mismo... pero tienen alguna utilidad distinta el alguna ocasión ?
El operador lógico NOT (!), es utilizado mayoritariamente en valores de tipo Boolean, es decir, para checar si el valor es false en lugar de true. Por ejemplo:
Código :
if(!(gameOver))//Si gameOver == false { trace("Error: El juego aún no ha terminado o se está jugando ahora"); }
Espero te haya quedado más claro, en caso contrario puedes mandarme un MP. Por:Carloz.Yanez
En cierto sentido es lo mismo en As2 y As3. De hecho yo siempre use con signos. Podrías haber llamado el tip "Como usar condicionales múltiples en ActionScript" Ya que con solo especificar que en As3 debes usar los signos queda todo claro.
Deberias agregar que se pueden usar muchos condicionales. Ejemplo:
En cierto sentido dije: Si uno es igual a uno y dos no es igual a tres, o si tres no es igual a ocho o cuatro es igual a cuatro. Se ejecute la acción. (Lo enrede un poco) Por:JaLeRu
O.O condicionales basicos, que acaso en AS 2.0 no eran asi ? Por:LOon_blog
LOon_blog :
O.O condicionales basicos, que acaso en AS 2.0 no eran asi ?
En realidad se puede desde ActionScript 1.0 El uso de expresiones era una práctica de Flash 5. Es como usar
Código :
3<5 ? trace(true):trace(false)
output: true
tambien puedes usar:
Código :
3<5 and 5<10 ?trace(true):trace(false)
ó
Código :
3<5 && 5<10 ?trace(true):trace(false)
en ambos casos es lo mismo , la ventaja, es menos líneas ahora si quieres rayarte un poco pos:
Código :
7<5 ? 7%2==0?trace("si es multiplo de 2"):trace("no es multiplo de 2") :trace(false)
output: false ya que 7 NO es menor que 5, sin embargo:
Código :
7>5 ? 7%2==0?trace("si es múltiplo de 2"):trace("no es múltiplo de 2") :trace(false)
output:NO es múltiplo de 2
ahora, esta forma solo te permite tener una linea de código por condición, aun así es interesante su uso
la lógica es esta
Código :
3<5 ? trace(true):trace(false)
seudocodigo si 3 < 5 entonces TRUE sino FALSE
Código :
7>5 ? 7%2==0?trace("si es multiplo de 2"):trace("no es múltiplo de 2") :trace(false)
seudocodigo si 7 < 5 entonces si 7 entre 2 da como módulo 0 entonces SI es múltiplo de 2 sino NO es múltiplo de 2 sino FALSO
Aun lo puedes usar en AS1, AS2 y AS3. esto quizas es un poco offtopic, pero puede complementar algunas cosas yo personalmente lo uso mucho, lo veo mas simple cuando uso una linea.