Game Maker Language: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 175:
 
Tutte le espressioni booleane restuituiscono valori booleani (true o false, 1 o 0, si o no, vero o falso) ma, in alcuni casi, possono avere in ingresso anche dati di altro tipo.
:* ''';operatori che prendono in ingresso valori numerici o stringhe'''
doppio*'''==''' (simbolo alternativo: "=") - Doppio [[uguale]]. Questo operatore permette di confrontare 2 dati (numeri o stringhe) e restituisce un valore booleano. Più precisamente restituisce true in caso di uguaglianza tra i 2 dati, altrimenti false.
*''' != ''' (simbolo alternativo: "<>") - [[diversoDiverso]]. Questo operatore permette di confrontare 2 dati (numeri o stringhe) . Più precisamente restituisce true in caso di disugualianza tra i 2 dati, altrimenti false.
 
:* ''';operatori che prendono in ingresso valori numerici'''
'''==''' (simbolo alternativo: "=")
*'''>''' - maggiore. Restituisce true in caso il valore a sinistra sia più alto di quello di destra.
*'''<''' - minore. Restituisce true in caso di valore di sinistra sia più piccolo di quello di destra.
 
*;operatori Dache notareprendono chein ingresso valori booleani<ref>l'ordine in cui vengono computate le espressioni booleane complesse è da sinistra a destra, a meno che un non si generi un ordine diverso usando delle [[parentesi tonde]].</ref>
doppio [[uguale]]. Questo operatore permette di confrontare 2 dati (numeri o stringhe) e restituisce un valore booleano. Più precisamente restituisce true in caso di uguaglianza tra i 2 dati, altrimenti false.
*'''&&''' - [[Algebra di Boole#AND|and]]. Se 2 o più espressioni booleane sono unite da dei &&, il risultato dell'espressione finale sarà true solo se il risultato di tutte le sottoespressioni è true.
 
*'''||''' - [[Algebra di Boole#OR|or]]. Se 2 o più espressioni booleane sono unite da dei ||, il risultato dell'espressione finale sarà true solo se il risultato di almeno una delle sottoespressioni è true.
''' != ''' (simbolo alternativo: "<>")
*'''^^''' - [[Algebra di Boole#XOR|xor]]. Se 2 o più espressioni che booleane sono unite da dei ^^, il risultato dell'espressione finale sarà true solo se il risultato di una sola delle sottoespressioni è true.
 
*''' ! ''' - [[Algebra di Boole#NOT|not]]. Inverte un'espressione passandola a false (se era true) oppure a true (se era false). Notare che due not consecutivi si annullano, ovvero le espressioni "!(!(true))" è "(true)" sono equivalenti.
[[diverso]]. Questo operatore permette di confrontare 2 dati (numeri o stringhe) . Più precisamente restituisce true in caso di disugualianza tra i 2 dati, altrimenti false.
 
:* '''operatori che prendono in ingresso valori numerici'''
 
'''>'''
 
maggiore. Restituisce true in caso il valore a sinistra sia più alto di quello di destra.
 
'''<'''
 
minore. Restituisce true in caso di valore di sinistra sia più piccolo di quello di destra.
 
:* '''operatori che prendono in ingresso valori booleani
'''&&'''
 
[[Algebra di Boole#AND|and]]. Se 2 o più espressioni booleane sono unite da dei &&, il risultato dell'espressione finale sarà true solo se il risultato di tutte le sottoespressioni è true.
 
'''||'''
 
[[Algebra di Boole#OR|or]]. Se 2 o più espressioni booleane sono unite da dei ||, il risultato dell'espressione finale sarà true solo se il risultato di almeno una delle sottoespressioni è true.
 
'''^^'''
 
[[Algebra di Boole#XOR|xor]]. Se 2 o più espressioni che booleane sono unite da dei ^^, il risultato dell'espressione finale sarà true solo se il risultato di una sola delle sottoespressioni è true.
 
''' ! '''
 
[[Algebra di Boole#NOT|not]]. Inverte un'espressione passandola a false (se era true) oppure a true (se era false). Notare che due not consecutivi si annullano, ovvero le espressioni "!(!(true))" è "(true)" sono equivalenti.
 
'''note:'''
 
* Da notare che l'ordine in cui vengono computate le espressioni booleane complesse è da sinistra a destra, a meno che un non si generi un ordine diverso usando delle [[parentesi tonde]].
* esempio di espressione incoerente
Non ha senso fare un test tra valore un prettamente booleano (come quello risultante da "instance_exists(obj_stella)") con un valore di altro tipo (numerico diverso da 0 e 1 o stringa) facendo un esempio:
<syntaxhighlight lang="gml">
dat_out = (instance_exists(obj_stella) == 3)
</syntaxhighlight>
Analizzando la linea: quella funzione (per definizione) può restituire solo due valori (0 e 1), e quindi non ha senso chiedersi se tale valore sia uguale a 3 o no. (NB: in realtà in GML non è errore di sintassi in senso stretto).
 
==Eliminare ridondanza non necessaria==