El not al igual que el and y elor es una estructura lógica que te permite crear en Lua lo que en programación son conocidas como expresiones lógicas. Si has dado algo de lógica en Matematicas no te será muy dificil comprender su uso y funcionamiento, a grandes rasgos se las expresiones de mas arriba se podrían explicar de la siguiente forma:
and -> Viene a ser literalmente "y". Se usa para evaluar si dos condiciones (o mas) se cumplen al mismo tiempo, si ambas se están cumpliendo entonces devuelve 1 (true) en caso contrario devuelve 0 (false).
Su tabla de verdad vendría a ser:
p | q | p and q
1|1|11|0|00|1|00|0|0
or -> Viene a ser literalmente "o". Se usa para evaluar si al menos una de las condiciones se está cumpliendo, si es asi se entonces devuelve 1 (true), en caso de que ninguna de las condiciones se cumpla devuelve 0 (false).
Su tabla de verdad vendría a ser:
p | q | p or q
1|1|11|0|10|1|10|0|0
not -> Viene a ser literalmente "no". Se usa para evaluar si al menos una condición en concreto no se está cumpliendo o para negarla (es decir invertirla) de tal forma que si está activa duelva 0 (false) y si está inactiva devuelva 1 (true). En el caso de estar evaluando una condición, comprobará si la condición no se está evaluando, en tal caso devolverá 1, en caso contrario devolverá cero.
Su tabla de verdad vendría a ser:
p |not p
1|00|1
Espero que con esta explicación hayas entendido mas o menos como funcionan y como se usan las expresiones lógicas en programación.
Saludos ;)
-----[[7 años en Scenebeta, con la misma ilusión que la del primer día]]----
hola =false
hola =not hola -- Hola ahora es true
hola =not hola -- hola ahora es false
Obviamente, que si quieres que SIEMPRE dentro de determinada situación hola sea false, con una asignación (hola = false) alcanza. El uso del "not X" en ese caso puede derivar en bugs..
Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderas trucos para resolver tus dudas antes.
a=false
b=trueifnot a thenos.message("Hola")end--Esto quiere decir si a no es verdadero entonces que salte un mensajeif b thenos.message("Hola")end--Si b es verdadero que salte un mensaje--Para pasar de trua a false o viceversa:
a=true
b=false
Img = image.load(blabla)
Img_statuts =trueif controls.press("cross")thennot Img_status --Lo que quiero es que si pulso equis no se ve nada y si lo vuelvo a hacer se blitea la imagen.if Img_status ==truethen
Img:blit(0,0)endend
Img = image.load(blabla)
Img_status =trueif controls.press("cross") then
Img_status =false
end
if Img_status ==true then
Img:blit(0,0)if not (Img_status==false) and controls.press("cross") then
Img_status =true
end
end
Comment para Arbër
Lo pongo acá para que pueda modificar el comentario, es que en la segunda tabla de verdad pone "p and q" y es "p or q".
Jejeje, gracias por avisarme,
Jejeje, gracias por avisarme, aunque al ser Moderador aunque hubieras respondido mas abajo lo podría haber editado ;)
De todos modos gracias por el favor crack ;)
-----[[7 años en Scenebeta, con la misma ilusión que la del primer día]]----
Pero
Igual no veo la corrección =/
Juraría que lo corregí...
Juraría que lo corregí...
Expresiones lógicas
El not al igual que el and y el or es una estructura lógica que te permite crear en Lua lo que en programación son conocidas como expresiones lógicas. Si has dado algo de lógica en Matematicas no te será muy dificil comprender su uso y funcionamiento, a grandes rasgos se las expresiones de mas arriba se podrían explicar de la siguiente forma:
Su tabla de verdad vendría a ser:
Su tabla de verdad vendría a ser:
Su tabla de verdad vendría a ser:
Espero que con esta explicación hayas entendido mas o menos como funcionan y como se usan las expresiones lógicas en programación.
Saludos ;)
-----[[7 años en Scenebeta, con la misma ilusión que la del primer día]]----
Perfecto, me ha servido mucho
Perfecto, me ha servido mucho la explicación del not y ya de paso el and y or, aunque esas ya las tenia bastante claras. Gracias a todos.
Ejemplo
Y para una variable? EJ: hola
Y para una variable? EJ:
EStaría bien así?
Para cambiar al opuesto es así:
Obviamente, que si quieres que SIEMPRE dentro de determinada situación hola sea false, con una asignación (hola = false) alcanza. El uso del "not X" en ese caso puede derivar en bugs..
Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderas trucos para resolver tus dudas antes.
No preguntes por MP, mejor pregunta aquí.
Eso es lo que buscaba.
Eso es lo que buscaba. Gracias!
by jorge_97
no. haber:
Dos años en SCENEBETA
Click aquí para ver la Entrada de Bitácora.
No tendria ningun sentido
Seria un error de sintaxis, aparte de que no tendria sentido, ¿Que pretendes conseguir?
Yo quiero que si pasa algo
Yo quiero que si pasa algo que sea lo contario. Si es false, que sea true y así.
...
variable=true
while...
code...
if noseque then
variable=false
end
end
Tendras que explicarte mejor, si no es lo que buscas.
Img =
Ok, captado.
Ahora puedes ponerla y quitarla.
........................
Usando NOT (que es lo que pregunta en el post):
Como puedes ver, es más sencillo, corto, y elegante con el not.
Saludos!
PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]
07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD
Recuerda: Sé el intérprete -_-
Eso es lo que buscaba.
Eso es lo que buscaba. Gracias Chimecho
Otro capricho mío: Un if se
Otro capricho mío:
Un if se cumple cuando la condición es true, si hacéis:
minumero == 5 devuelve true, por lo tanto hacer:
EDITO: Para que lo entendáis mejor:
Cierto,
es correcto eso, pero prefiero usar los comparadores == para trabajar, no creo que sea un mal habito.
Cambia el modo del code...
Está en C creo xD
Es solo un caprichito mío jeje
No se como
si cuando has respondido me has quitado la forma de editar mi comentario.
LOL
Es verdad... prdón... xD