Comprendere perché funziona un i"f Statement".

Salve,buonasera.
Avrei bisogno una mano a capire come funziona un "if statement" che ho copiato da un tutorial Youtube.
Vorrei infatti capire come funziona esattamente per essere in grado di riprodurlo e spiegarlo a mia volta.

#include <Mouse.h>
int horzPin = A0;  // Analog output of horizontal joystick pin
int vertPin = A1;  // Analog output of vertical joystick pin
int selPin = 9;  // select button pin of joystick

int vertZero, horzZero;  // Stores the initial value of each axis, usually around 512
int vertValue, horzValue;  // Stores current analog output of each axis
const int sensitivity = 200;  // Higher sensitivity value = slower mouse, should be <= about 500
int mouseClickFlag = 0;

void setup()
{
  pinMode(horzPin, INPUT);  // Set both analog pins as inputs
  pinMode(vertPin, INPUT);
  pinMode(selPin, INPUT);  // set button select pin as input
  digitalWrite(selPin, HIGH);  // Pull button select pin high
  delay(1000);  // short delay to let outputs settle
  vertZero = analogRead(vertPin);  // get the initial values
  horzZero = analogRead(horzPin);  // Joystick should be in neutral position when reading these

}

void loop()
{
  vertValue = analogRead(vertPin) - vertZero;  // read vertical offset
  horzValue = analogRead(horzPin) - horzZero;  // read horizontal offset

  if (vertValue != 0)
    Mouse.move(0, vertValue/sensitivity, 0);  // move mouse on y axis
  if (horzValue != 0)
    Mouse.move(horzValue/sensitivity, 0, 0);  // move mouse on x axis

  if ((digitalRead(selPin) == 0) && (!mouseClickFlag))  // if the joystick button is pressed
  {
    mouseClickFlag = 1;
    Mouse.press(MOUSE_LEFT);  // click the left button down
  }
  else if ((digitalRead(selPin))&&(mouseClickFlag)) // if the joystick button is not pressed
  {
    mouseClickFlag = 0;
    Mouse.release(MOUSE_LEFT);  // release the left button
  }
}

Non riesco a comprendere come funzionino l'ultimo "if" e l'ultimo "else if", più precisamente non capisco come mai viene semplicemente scritto "!mouseClikFlag" o ancora solo lo stato del pulsante, esattamente scrivere in questa maniera la condizione dell' "if Statement" cosa verifica? Grazie mille a chiunque mi darà una mano!

if (variabile, o funzione che ritorna cose) É come dire if (variabile !=0), quindi se é diverso da 0. if ( !variabile o funzione) é come dire se é uguale a 0

Silente:
if (variabile, o funzione che ritorna cose) É come dire if (variabile !=0), quindi se é diverso da 0. if ( !variabile o funzione) é come dire se é uguale a 0

Ti ringrazio, scusa la domanda magari banale ma proprio non trovavo nulla, probabilmente cercavo con i termini sbagliati.

>Psygar: essendo i tui primi post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nessuno ti potrà rispondere ulteriormente, quindi ti consiglio di farla al più presto. :wink:

>Silente: Ti prego, prima di rispondere, di verificare sempre se l'utente abbia effettuato la presentazione, cosa che, ovviamente, NON può essere possibile se il suo numero di post è 1.