Buenas, es que tengo una duda con respecto a else, bueno a veces cuando probamos varios valores de una variable se debe usar para el if de cada uno?? es decir, asi?
[gml]if vida=0{instance_destroy()}
else
if vida=1{instance_destroy()}
else
if vida=2{instance_destroy()}[/gml]
? debe usarse asi?(sin el else):
[gml]if vida=0{instance_destroy()}
if vida=1{instance_destroy()}
if vida=2{instance_destroy()}[/gml]
Es que tengo esta duda y creo que una de estas dos formas ocasiona algunos errores.. ?Como se usa?
Else se usa como un separador de opciones diferentes, osea; se usa para decir que si sucede lo contrario a lo establecido suceda la acci?n... A ver, me explico:
[gml] if global.puntos=5{game_end()}
else
{global.puntos+=1}// si los puntos son 5 se acabar?, DE LO CONTRARIO no lo har?. [/gml]
osea... No se usa para separar muchas opciones, si no para decir que si no pasa algo se realice la acci?n.. Espero hacerme explicado.
Mmm en el caso de tu codigo no es necesario usar ning?n
else, la verdad no se bien como explic?rtelo a ver si explic?ndote lo que hacen tus dos c?digos lo entiendes.
si vida=0{instance_destroy()}
pero si vida no es 0
si vida=1{instance_destroy()}
pero si vida no es 0 ni 1
si vida=2{instance_destroy()}
si vida=0{instance_destroy()}
si vida=1{instance_destroy()}
si vida=2{instance_destroy()}
Como veras no son necesarios los
elses pero tampoco estorban.
es como ir a una tienda y preguntar.
Citar
1: TU ---- Cuanto cuesta este perfume?.
2: Se?or de la tienda ---- 80 se?or.
3: TU ---- y ese otro perfume cuesta lo mismo?
4: Se?or de la tienda ---- no se?or no cuesta lo mismo.
5: TU ---- Entonces cuanto cuesta ese perfume?.
6: Se?or de la tienda ---- 120 se?or.
Como veras los comentarios 3 y 4 podr?n ser eliminados y quedar?a bien la conversaci?n.
claro hay casos en los que si altera el resultado, como este.
[gml]if keyboard_check(vk_down){y+=2}else{
if keyboard_check(vk_left){x-=2}}[/gml]
En este caso si presionas abajo y izquierda al mismo tiempo solo se mover? a hacia abajo
o
[gml]if keyboard_check(vk_down){y+=2}
if keyboard_check(vk_left){x-=2}[/gml]
En este caso si presionas abajo y izquierda al mismo tiempo se movera en diagonal.
Porcierto en casos en los que ocupes tantos
ifs puedes usar un switch, as?.
[gml]switch (vida)
{
case 0:
case 1:
case 2:
instance_destroy(); break;
}[/gml]
Puedes investigar en el manual.
Gracias a los dos.. brunoxzx, justamente en los eventos de key press estaba basada mi pregunta XD, gracias
por nada 8).
if (condicion1) else (condicion2)
si (condicion1) sino (condicion2)
o sea SI la primer es verdadera se ejecuta el codigo de la condicion1 SINO es la consicion2