Logica

I blocchi logici possono eseguire diverse operazioni, in base alle condizioni delle espressioni matematiche o logiche.

I seguenti blocchi logici eseguono le operazioni in base al risultato della condizione. Impostare la condizione [If] o [If Else] nel blocco valore o nel blocco logico.

I seguenti blocchi logici producono valori numerici o logici da utilizzare nelle condizioni.

Nota:

  • Quando nel valore di un operando si verifica quanto segue, il valore è indefinito:
    • Errore di comunicazione (la qualità della variabile è "cattiva")

    • Accesso al numero di elementi dell'array che è fuori dai limiti

    • Dividere per zero.

  • Se il blocco logico contiene valori non definiti, il risultato è indefinito. Tuttavia, se utilizzata come [Condizione di logica], potrebbe ancora produrre un risultato.

Condizione di logica

If

Questo blocco esegue le operazioni sotto [Do] se la condizione [If] viene giudicata vera.
Blocco
Testo

'if(CONDITION){}'

Nota: Durante l'esecuzione dello script, se la condizione [If] non è definita, esce dal blocco.

If Else

Questo blocco esegue le operazioni sotto [Do] se la condizione [If] viene giudicata vera e le operazioni sotto la condizione [Else], [If] viene giudicata falsa.
Blocco
Testo

'if(CONDITION){}else{}'

Nota: Durante l'esecuzione dello script, se la condizione [If] non è definita, la logica salta [Do] ed esegue l'operazione [Else].

Math

Questo blocco è un'espressione matematica. Inserire il blocco di valori nell'operando sinistro (X) e nell'operando destro (Y) e selezionare l'operatore.
Blocco
Testo

'SOURCE1 * SOURCE2'

Operatore

Espressione

Descrizione

+ X + Y Aggiungere
- X - Y Sottrai
* X * Y Moltiplica
/ X / Y Dividi
% X % Y Resto della divisione
& X & Y Restituisce il risultato dell'operazione AND a livello di bit. Se X = 0110; Y= 1100 il risultato è 0100
| X | Y Restituisce il risultato dell'operazione OR a livello di bit. Se X = 0110; Y= 1100 il risultato è 1110
^ X ^ Y Restituisce il risultato dell'operazione XOR a livello di bit. Se X = 0110; Y= 1100 il risultato è 1010
<< X << Y Spostamento a sinistra. Sposta i bit in X, a sinistra, del numero Y di posizioni di bit. Mantiene il segno.
>> X >> Y Spostamento a destra. Sposta i bit in X, a destra, del numero Y di posizioni di bit. Mantiene il segno.
>>> X >>> Y Riempimento zeri, spostamento a destra. Sposta i bit in X, a destra, del numero Y di posizioni di bit e riempie i bit spostati a sinistra con zeri, non mantiene quindi il segno.

Nota:

  • AND/OR/XOR restituiscono sempre un valore intero a 32 bit senza segno.
  • Se il valore di ingresso è negativo, le espressioni a scorrimento bit restituiscono un valore intero a 32 bit.
  • Se il valore di ingresso è positivo, le espressioni a scorrimento bit restituiscono un valore intero a 32 bit senza segno.

Nota:

Il risultato dell’espressione matematica contiene i punti decimali.

(Esempio 1)
Nel caso seguente, se il valore di INT1 è 101, il risultato è 10.1 (.1 non è troncato).

Blocco

Testo

'INT1 / 10'

Per troncare i punti decimali, usare il blocco floor.
(Esempio 2)
Nel caso seguente, se il valore di INT1 è 101, il risultato è 10.

Blocco

Testo

'$Math.floor((INT1 / 10))'

Condizioni di confronto

Questo blocco è la condizione di confronto. Inserire il blocco di valori nell'operando sinistro (X) e nell'operando destro (Y) e selezionare l'operatore.

Blocco
Testo

'CONDITION1 == CONDITION2'

Operatore

Descrizione

Esempio

<=

Restituisce vero se il valore di X è minore o uguale al valore di Y.

Se X = 7 e Y = 33, allora l’espressione X <= Y è vera.

>=

Restituisce vero se il valore di X è maggiore o uguale al valore di Y.

Se X = 32 e Y = 10, allora l’espressione X >= Y è vera.
<

Restituisce vero se il valore di X è minore del valore di Y.

Se X = 7 e Y = 38, allora l’espressione X < Y è vera.
>

Restituisce vero se il valore di X è superiore al valore di Y.

Se X = 27 e Y = 14, allora l’espressione X > Y è vera.
!=

Restituisce vero se il valore di X non è uguale al valore di Y.

Se X = 7 e Y = 33, allora l’espressione X != Y è vera.
==

Conferma vero se il valore di X è uguale al valore di Y.

Se X = 5 e Y = 5, allora l’espressione X == Y è vera.

Condizione di logica

Questo blocco è la condizione logica. Inserire il blocco di valori nell'operando sinistro (X) e nell'operando destro (Y) e selezionare l'operatore.

Blocco
Testo

'CONDITION1 && CONDITION2'

Operatore

Descrizione

Esempio
&&

AND logico

Restituisce vero se entrambi sono veri.

Se X = true, Y = false, allora l’espressione X && Y è false.

Nota: Anche se il valore di uno degli operandi non fosse definito, la condizione logica risultante potrebbe essere valutata falsa se l'altro operando è falso. Vedere la tabella seguente.

X Y Risultato
Non definito Non definito Non definito
Non definito true Non definito
Non definito false false
true Non definito Non definito
false Non definito false
||

Somma logica

Restituisce vero tranne se entrambi gli ingressi sono falsi.

Se X = true, Y = false, allora l’espressione X || Y è true.

Nota: Anche se il valore di uno degli operandi non fosse definito, la condizione logica risultante potrebbe essere valutata true se l'altro operando è true. Vedere la tabella seguente.

X Y Risultato
Non definito Non definito Non definito
Non definito true true
Non definito false Non definito
true Non definito

true

false Non definito Non definito

Not

Questo blocco esegue la negazione logica o la negazione dei bit. Inserire il blocco di valori nell'operando (X) e selezionare l'operatore.

Blocco
Testo

'!SOURCE'

Operatore

Descrizione

Esempio
!

NOT logico

Restituisce l'inverso del valore booleano.

Se X = false, allora il risultato è true.
˜

Bit NOT

Restituisce il valore inverso di ciascun bit.

Nota: quando si usano numeri interi, la lunghezza in bit delle espressioni di bit è sempre 32 bit.

Se X = 0011, allora il risultato è 1100.