double condition qui n'en est pas une

Bonjour,
Je poste ce message suite à une condition bien lue par arduino, mais interprétée de manière très bizarre :
En Python, si v = 3, 2<v<4 retourne "vrai"
et si v = 5 ça retourne "faux". Jusque là, tout va bien.

Avec Arduino, le comportement est différent :

void setup() {
Serial.begin(9600);
int v = 5 ; 
Serial.println(2<v<4) ; 
}

void loop() {
}

Sur le moniteur série, on a un "1", soit "vrai"... c'est curieux :confused:

On aurait pu penser à une double condition avec un OU : 2<v<5 voudrait dire v>2 OU v<5 mais ce n'est pas ça : avec v=1, 2<v<1 retourne "vrai".

À noter qu'arduino ne renvoie aucune erreur lors de la vérification du code, donc il l'interprète bien, mais comment ? (en tt cas pas comme moi)

Si une bonne âme avait la réponse à cette question, je la remercie

Bonjour,

En C/C++ c'est interprété comme ça: (2<v )<4
2<v donne true soit 1 puis 1<4 donne true -> résultat 1

Il faut écrire 2<v && v<4

Tout s'éclaire ! Merci beaucoup !