descubierto: if(x==y==z==0); condiciones mas simplificada

Discusión en general sobre Gemix.

descubierto: if(x==y==z==0); condiciones mas simplificada

Postby SimulatorOne » Sat Jan 21, 2012 8:21 pm

Hola

tenia una sere de variables que hacer una condicion a un igual contante.

Queria consultar una serie de variables que sea igual a un numero, si es cierto.

por ejemplo:
Source Code (Gemix) [ Download ] [ Hide ]
  • if( x==y==z==0 );

esto funciona :D

antiguamente lo hacia mas largo: lo clasico.
Source Code (Gemix) [ Download ] [ Hide ]
  • if( x==0 and y==0 and z==0 );


Sinceramente en la DOC de Div2 no lo dice, y menos en Gemix...

no se, ha sido por probar.
y funciona el invento, me es mas sencillo, y seguro que es mas rapido en performance.
User avatar
SimulatorOne
 
Posts: 6626
Joined: Tue Nov 17, 2009 2:52 pm
Location: Barcelona

Re: descubierto: if(x==y==z==0); condiciones mas simplificad

Postby necro_vampire » Sat Jan 21, 2012 8:34 pm

dudo que sea mas rapido...
porque si una es disntinto, al usar and, sale por falso, si es verdadero debe comprobar todas las partes...
en cambio en la otra tiene si o si que comprobar todos los valores, antes de salir por verdadero o falso, siempre...
Image
Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.
User avatar
necro_vampire
 
Posts: 1372
Joined: Fri Oct 10, 2008 12:38 am
Location: Death Soul city???

Re: descubierto: if(x==y==z==0); condiciones mas simplificad

Postby GINO » Sat Jan 21, 2012 8:38 pm

Esa es la lógica normal de este tipo de lenguajes de programación (C, java, etc.)
User avatar
GINO
 
Posts: 2823
Joined: Thu Jul 31, 2008 10:25 pm

Re: descubierto: if(x==y==z==0); condiciones mas simplificad

Postby erkosone » Sat Jan 21, 2012 8:44 pm

Yo me pregunto si alguna vez Simulatorone cogió un libro de programación que no fuese el de Div XD..
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: descubierto: if(x==y==z==0); condiciones mas simplificad

Postby shao » Sat Jan 21, 2012 10:06 pm

necro_vampire wrote:dudo que sea mas rapido...
porque si una es disntinto, al usar and, sale por falso, si es verdadero debe comprobar todas las partes...
en cambio en la otra tiene si o si que comprobar todos los valores, antes de salir por verdadero o falso, siempre...



Actualmente gemix no funciona asi, hace todas las comprobaciones antes de salir o entrar al if, me lo dijo cictec hace poco, no recuerdo en que post.
User avatar
shao
 
Posts: 6036
Joined: Wed Jun 17, 2009 4:51 pm

Re: descubierto: if(x==y==z==0); condiciones mas simplificad

Postby SimulatorOne » Sat Jan 21, 2012 10:45 pm

erkosone wrote:Yo me pregunto si alguna vez Simulatorone cogió un libro de programación que no fuese el de Div XD..

pues no, solo div.

pues mira, otro descubrimiento.
User avatar
SimulatorOne
 
Posts: 6626
Joined: Tue Nov 17, 2009 2:52 pm
Location: Barcelona

Re: descubierto: if(x==y==z==0); condiciones mas simplificad

Postby kozka » Sat Jan 21, 2012 11:08 pm

gracias simu no sabia que se podia usar esa sintaxis
User avatar
kozka
 
Posts: 2111
Joined: Sun Feb 01, 2009 9:36 pm

Re: descubierto: if(x==y==z==0); condiciones mas simplificad

Postby GINO » Sat Jan 21, 2012 11:28 pm

Aunque ten en cuenta que esa expresión si no me equivoco no hace lo que tu quieres porque el resultado de una operación lógica es un booleano (0 o 1, false o true). Si lo separas con paréntesis lo verás mejor:
if (((x == y) == z) == 0)
1 - x == y ? pues eso te devuelve 0 o 1
2 - 0/1 == z eso te devuelve 0 o 1
3 - 0/1 == 0 eso devuelve 0 o 1 tb
como ves el ejemplo que pones tu no es válido, esto es lo que hace (supongo que xyz valen 0):
1 - x == y = 1 true
2 - 1 == z = 0 false
3 - 0 == 0 = 1 true
Pero si pones que valgan 34 por ejemplo:
x = y = z = 34 //esto si lo puedes hacer y funciona
if (x == y == z == 34) //esto no funciona, da false, o debería
1 - x == y = 1 true
2 - 1 == z = 0 false
3 - 0 == 34 = 0 false
Por eso nunca verás empleado eso, aunque se pueda hacer porque es totalmente valido.
User avatar
GINO
 
Posts: 2823
Joined: Thu Jul 31, 2008 10:25 pm

Re: descubierto: if(x==y==z==0); condiciones mas simplificad

Postby SimulatorOne » Sat Jan 21, 2012 11:38 pm

entonces es un error mio, no sabia.

aun asi, estoy acotumbrado a la antigua y con parentesis para estar seguro en mis operaciones.
User avatar
SimulatorOne
 
Posts: 6626
Joined: Tue Nov 17, 2009 2:52 pm
Location: Barcelona

Re: descubierto: if(x==y==z==0); condiciones mas simplificad

Postby CicTec » Wed Feb 01, 2012 11:47 am

Hola Simulatorone,

La sintaxis que indicas esta permisa, todavia el funcionamiento es lo que te ha indicado GINO en el ultimo post, porque es una conjuncion de resultados booleanos.
User avatar
CicTec
 
Posts: 16571
Joined: Thu Jul 31, 2008 10:18 pm


Return to General

Who is online

Users browsing this forum: No registered users and 6 guests