Souci compréhension Serial.available

Bonsoir,

J'ai un petit souci pour comprendre le fonctionnement d'une commande d'un code trouvé

while (Serial.available() == 0 );
    {
      donnee = Serial.parseInt(); 
      Serial.println(donnee);
      delay(100); 
    }

Le code fonctionne très bien mais je ne comprends pas pourquoi : selon moi, je comprends du code que tant que rien n'est envoyé dans le moniteur série (le buffer pour être plus exact), on convertit en entier la valeur du buffer or en pratique c'est l'inverse qui se passe. Quand je ne saisis rien, le programme "ne fait rien" par contre quand je saisis un chiffre, il est bien affiché.

Qu'ai-je mal compris dans le fonctionnement du code ?

Merci pour votre aide

le ; à la fin de la 1ere ligne.

Ah, c'est subtil : ça signifie en fait qu'on boucle infiniment tant que rien n'est reçu ?

exactement

du coup les {} qui suivent ne servent à rien (et sont même trompeuses)

Merci pour l'explication

celui qui a écrit le code comme cela voulait tromper son monde !!

Je serai plus enclin à penser qu'il a copié:

while (Serial.available() > 0 )
    {
      donnee = Serial.parseInt(); 
      Serial.println(donnee);
      delay(100); 
    }

et que par mégarde il a rajouté un point-virgule. Et comme cela fonctionnait à l'envers de ce qu'il voulait il a remplacé > par ==

c'est peut-être ça effectivement pourtant je ne me rappelle pas avoir touché à cette partie du code.
Merci en tout cas pour vos retours.